解析包含“&;英镑&”;
本文关键字:英镑 amp 包含 | 更新日期: 2023-09-27 18:00:09
我正在解析一个格式不正确的xml文档,它包含"&",并且解析不正确——一个节点中包含"&"。
例如<abcnode>£70.00-£90.00</abcnode>
当我尝试获取这个节点的值时,它返回"70.00-"。
我无法控制这个xml,所以我将不得不解析这个格式错误的xml。
我正在使用XmlTextReader reader = new XmlTextReader(url);
从url加载xml。
我可以让xml替换£
来解决我的问题,但这个xml可能很大,所以我不想下载文件来替换无效字符(出于性能原因)。
有没有一种方法可以使用XmlTextReader
解析这个xml?
XmlTextReader
将从中读取一个TextReader
参数,因此您可能能够实现一个继承TextReader
的类,覆盖所有ReadXXX()
方法并修复覆盖中的无效字符。
EDIT或者,您可以在读取XML的DOCTYPE
时对其进行破解,以添加<!ENTITY pound "£">
,这将使文档的其余部分形成良好的格式。可能还有另一个技巧可以在不修改XML的情况下将实体添加到XmlTextReader
本身,但我不知道。
我想知道你说这不是很好的形式是对的吗?也许它解析正确,但构建了一个DOM树,其中实体显式显示为节点,而您的应用程序代码忽略了实体节点?