XMLStreamException因为& in xml

时间:2015-09-23 11:53:43

标签: java xml xml-parsing stax

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

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

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

如果我有'&amp;',我该怎么办?在我的文中,例如:<example>I like programming & football</example>

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

  

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

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

感谢。

1 个答案:

答案 0 :(得分:0)

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

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

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