【发布时间】:2012-02-14 15:02:51
【问题描述】:
我使用 Java 和 Apache Xerces XML 解析器。错误发生在org.apache.xerces.parsers.DOMParser.parse内部。
<content id="xxx">&<br /></content>
如果我要解析的 XML 文档中出现这样的行,解析器会崩溃并返回以下错误消息:
org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference.
我可以将问题的根源缩小到<br /> 的出现,因为如果我忽略它但无法理解导致损坏的原因,它会很好地工作。 & 符号已正确转义,不应以任何方式干扰 <br /> 作为 HTML 行分隔符的出现。
【问题讨论】:
-
也是 XML 的特殊字符。如果您可以控制源 XML,我建议您使用 CDATA。
-
我见过的任何文档都说必须终止所有标签,因为这不是 HTML。它是 XML。这就是人们应该开始遵循 XHTML 约定的原因。我认为终止
很重要。 -
如何重现这个问题?
<content id="xxx">&amp;<br /></content>是格式良好的 XML。
标签: java xml exception sax xerces