java - 在xml中,由于&而导致的java XMLStreamException

  显示原文与译文双语对照的内容

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

我使用英镑的库来完成这个任务。


XMLInputFactory inputFactory = XMLInputFactory.newInstance();


InputStream in = new FileInputStream(filepath);


eventReader = inputFactory.createXMLEventReader(in);



如果文本 比如 中有'&',该怎么办? <example>I like programming & football</example>

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

javax.xml.stream.XMLStreamException: [row,col] 处的ParseError: [3608,52] 消息: 实体名称必须紧跟在实体引用中的'&'后面。 在 com.sun. org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source )

我知道错误发生的原因。 解析器想要查找 & amp,& 。 。但我不知道如何避开错误。

谢谢。

时间: 原作者:

XML文件中无转义( 作为 &amp; ) 符号的外观违反了如何编写XML文件的基本规则。 ( &lt;&gt; 是其他明显的例子。)

任何XML生产者都应该确保遵循W3C规范。

如果你必须修补一个写得不好的文件,并且如果没有使用&来介绍所有的HTML实体,你可以通过sed或者一些类似的工具来尝试修补程序。

原作者:
...