去掉xml里的非法字符问题
xml文件里可能含有非法字符,是否有xml的解析工具如sax,dom等能提供函数去掉非法字符的?
[解决办法]
xml有实体?你说的是非法字符是出现在元素中?
[解决办法]
你应该在生成xml 的时候处理,
[解决办法]
如果你有非法字符,解析器载入XML就会报错了,你还指望解析器?
最佳方案是在生成的时候处理。麻烦不麻烦,关键在于你怎么写的代码。理论上优质的代码是不太麻烦的。
应急方案就是你利用字符串处理的方式,用正则吧非法字符去掉。
[解决办法]
XML里的非法字符一共只有2个:< (实体引用为 <) 和 & (实体引用为 &),只需要将元素值和属性值中这2个字符替换为正确的实体引用就行。
如果你把显示不正常的字符也认为是非法字符(比如中文显示为乱码或方块),那就是XML文件中的有些字符的指定(或默认)编码属性与文件实际的编码属性不匹配,比如你文件里的处理指令写
<?xml version="1.0" encoding="UTF-8"?> ,实际上 XML 文件的字符编码并不一定是 UTF-8,这取决于你的XML编辑器或者编程代码,这种情况下,将 处理指令里的编码属性与实际文件存储的编码属性指定一致即可解决。
[解决办法]
netbean开发的话就自带了 xml的检查和验证