使用Java的DOM XML API在XML中解析Ampersand

Abh*_*gav 5 java xml dom

我试图用Java DOM API(而不是SAX)解析XML文档.每当解析器在解析文本节点时遇到&符号(&)时,它就会出错.我猜这是可解决的1)转义,2)编码或3)使用不同的解析器.

我正在阅读一篇我无法控制的XML文档,因此每次阅读时都无法准确识别文档中的&符号.

我在类似问题上看到的答案建议在解析XML时替换实体类型,但我不知道如何能够这样做,因为它在遇到XML&符号时甚至都不会解析.

任何帮助将不胜感激.

小智 4

如前所述,XML 格式错误(哎呀!):&XML 中所有出现的(除了引入字符实体 [?] 的标记)都必须编码为&

一些解决方案(基本上就像帖子中描述的那样!):

  1. 修复 XML(在源头或修改阶段),或者;
  2. 使用“适当的”工具(例如“宽容的”HTML 解析器)解析它

对于“hack-it-up”方法,请考虑一个单独的输入流 - 请参阅使用过滤器流- 它在实际 DOM 解析器之前作为过滤器执行:每当遇到 a 不是&字符实体的一部分) )它通过插入&流来“修复它” 。当然,如果 XML 源的基本编码不正确......

快乐编码。