如往常一样, 客户发给我一个xml文件, 用来更新数码课堂日程安排——是一个js读取xml文件达到鼠标经过日历显示每日课程安排的效果,有类于Ajax数据读取(只不过数据是完全静态更新)的脚本程序。
由于是两方来完成整个日程更新(客户把制作页面和更新网站分开), 给我的xml文件总是有问题, 由于经常做,知道制作方在html代码水平上还是比较初级, 所以每次更新前总要对他们给的文件校正, 果然还是有问题, 如往常一样,我检查文件内容的每个标签是否完整, 检查出一处错误,感觉应该OK了, 可是页面还是显示读取xml数据失败。
我又从头到尾挨个检查标签(文件还挺长,我好可怜啊,呜呜~~~), 居然没有发现什么错误,哎,眼花,郁闷~~~, 无奈之下,只好将代码拷出来, 再挨个拷进去,边拷边刷新页面预览效果, 来回好几回,终于发现有好几处代码都有问题, 语法上好像没什么错误~~~,标签完整~~, 突然发现在内容里都有“&“,可恶, 总盯着标签查半天,忘了可能是内容里的字符冲突, 替换一下,果然好了, 为了详细理解,我上 w3school 查了一下:
转义字符
非法的 XML 字符必须被替换为实体引用(entity reference)。
在 XML 中有 5 个预定义的实体引用:
< < 小于
> > 大于
& & 和号
' ' 省略号
" " 引号
注释:严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。
原来如此,真相大白, 只能怪自己倒霉,也怪自己对XML了解不够
更多信息请查看IT技术专栏