用Java'解析XML中的符号和;domxmlapi

用Java'解析XML中的符号和;domxmlapi,java,xml,dom,Java,Xml,Dom,我试图用JavaDOMAPI(而不是SAX)解析XML文档。每当解析器在解析文本节点时遇到符号(&)时,就会出错。我猜这可以通过1)转义、2)编码或3)使用不同的解析器来解决 我正在阅读一个我无法控制的XML文档,因此每次阅读它时,我都无法准确地识别符号和出现在文档中的什么位置 我看到的类似问题的答案建议在解析XML时替换实体类型,但我不确定如何才能做到这一点,因为它在遇到XML符号时甚至不解析 任何帮助都将不胜感激 如前所述,XML格式不正确(oops!):XML中出现的所有&(引入字符实体[

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


我正在阅读一个我无法控制的XML文档,因此每次阅读它时,我都无法准确地识别符号和出现在文档中的什么位置

我看到的类似问题的答案建议在解析XML时替换实体类型,但我不确定如何才能做到这一点,因为它在遇到XML符号时甚至不解析


任何帮助都将不胜感激

如前所述,XML格式不正确(oops!):XML中出现的所有
&
(引入字符实体[?]的标记除外)必须编码为
&

一些解决方案(基本上与文章中描述的一样!):

  • 修复XML(在源代码处,或在破解阶段),或
  • 使用“适当的”工具(例如“宽容的”HTML解析器)对其进行解析
  • 对于“HAKUP”方法,考虑一个单独的输入流——参见——在实际DOM解析器之前作为过滤器执行:每当遇到<代码>和/或代码>(这不是字符实体的一部分)时,它通过插入<代码> & <;代码>输入到流中。当然,如果XML源没有获得正确的基本编码

    愉快的编码。

    我正在阅读一个我无法控制的XML文档

    不,您正在阅读非XML文档。出现错误的原因是,当您读取非XML的内容时,需要XML解析器给您一个错误

    XML文化要求发送者负责生成格式良好的XML。您需要更改生成此数据的任何内容,以便正确地执行此操作。否则,您可能会忘记XML及其优点,回到私人协议和自定义解析器的混乱世界。

    提到了一些可能更宽容的解析器