XMLStreamException 因为 xml 中的 &

XMLStreamException because of & in xml

我想将 xml 文件解析为 java 对象。

我使用 XMLInputFactory 库来执行此操作。

XMLInputFactory inputFactory = XMLInputFactory.newInstance();
InputStream in = new FileInputStream(filepath);
eventReader = inputFactory.createXMLEventReader(in);

如果我的文本中有“&”,我该怎么办,例如:<example>I like programming & football</example>

我总是收到一条错误消息:

javax.xml.stream.XMLStreamException: ParseError at [row,col]:[3608,52] Message: The entity name must immediately follow the '&' in the entity reference. at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)

我知道错误发生的原因。解析器想寻找 &, &.., ... 但我不知道如何转义错误。

谢谢。

XML 文件中未转义(如 &amp;)符号的出现违反了 XML 文件必须如何编写的基本规则。 (&lt;&gt; 是其他明显的例子。)

任何 XML 生产者都应确保遵守 XML 的 W3C 规范。

如果你必须修补一个写得不好的文件并且如果 & 根本不用于引入 HTML 实体你可以尝试通过 sed 或类似的补丁效用。