XML 非法字符(转义字符)

  如往常一样,

  客户发给我一个xml文件,

  用来更新数码课堂日程安排——是一个js读取xml文件达到鼠标经过日历显示每日课程安排的效果,有类于Ajax数据读取(只不过数据是完全静态更新)的脚本程序

  由于是两方来完成整个日程更新(客户把制作页面和更新网站分开),

  给我的xml文件总是有问题,

  由于经常做,知道制作方在html代码水平上还是比较初级,

  所以每次更新前总要对他们给的文件校正,

  果然还是有问题,

  如往常一样,我检查文件内容的每个标签是否完整,

  检查出一处错误,感觉应该OK了,

  可是页面还是显示读取xml数据失败,

  我又从头到尾挨个检查标签(文件还挺长,我好可怜啊,呜呜~~~),

  居然没有发现什么错误,哎,眼花,郁闷~~~,

  无奈之下,只好将代码拷出来,

  再挨个拷进去,边拷边刷新页面预览效果,

  来回好几回,终于发现有好几处代码都有问题,

  语法上好像没什么错误~~~,标签完整~~,

  突然发现在内容里都有“&“,可恶,

  总盯着标签查半天,忘了可能是内容里的字符冲突,

  替换一下,果然好了,

  为了详细理解,我上 w3school 查了一下:

  转义字符

  非法的 XML 字符必须被替换为实体引用(entity reference)。

  在 XML 中有 5 个预定义的实体引用:

  < < 小于

  > > 大于

  & & 和号

  &apos; ' 省略号

  " " 引号

  注释:严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。

  原来如此,真相大白,

  只能怪自己倒霉,也怪自己对XML了解不够