我正在解析一个格式不正确的xml文档,其中包含"&“,如果节点中包含"&”,则解析不正确。
例如<abcnode>£70.00-£90.00</abcnode>
当我尝试获取这个节点的值时,它返回"70.00-“。
我无法控制这个xml,所以我必须解析这个格式错误的xml。
我正在使用XmlTextReader reader = new XmlTextReader(url);从url加载xml。
我可以让xml替换£来解决我的问题,但是这个xml可能非常大,所以我不想下载该文件来替换无效字符(出于性能原因)。
有没有一种方法可以使用XmlTextReader解析这个xml
发布于 2011-06-24 19:42:13
XmlTextReader将接受一个TextReader参数进行读取,因此您可以实现一个继承TextReader的类,覆盖所有ReadXXX()方法并修复覆盖中的无效字符。
编辑或者,您可以在读取XML的DOCTYPE时修改它以添加<!ENTITY pound "£">,这将使文档的其余部分格式良好。可能还有另一个技巧可以将实体添加到XmlTextReader本身,而不需要修改XML,但我不知道有什么技巧。
发布于 2011-06-24 22:40:40
我想知道你说这不是很好的说法对不对?也许它的解析是正确的,但是构造了一个DOM树,其中的实体显式地显示为节点,而您的应用程序代码忽略了实体节点?
https://stackoverflow.com/questions/6467151
复制相似问题