如何在java中读取XML样式的文本文件?

如何在java中读取XML样式的文本文件?,java,dom,jaxb,Java,Dom,Jaxb,我想阅读以下Java格式的XML文件,它是文本格式的 XML文件: 有谁能给我推荐一种阅读此xml的最佳方法吗?请参阅-正如错误所述,xml需要一个实体引用。您需要使用&;,为了那个比符号更伟大的东西。您正在使用的Saxon库应该正确处理这些URL编码的字符 当XML解析器在XML数据中找到一个符号和时,它希望找到一个符号名和一个分号。符号名称提供了对另一个实体或字符的符号引用,例如“与”、“大于”和“小于”字符 严格来说,这不是有效的XML。您应该要求XML的创建者正确地转义&等,或者将

我想阅读以下Java格式的XML文件,它是文本格式的

XML文件:

有谁能给我推荐一种阅读此xml的最佳方法吗?

请参阅-正如错误所述,xml需要一个实体引用。您需要使用&;,为了那个比符号更伟大的东西。您正在使用的Saxon库应该正确处理这些URL编码的字符

当XML解析器在XML数据中找到一个符号和时,它希望找到一个符号名和一个分号。符号名称提供了对另一个实体或字符的符号引用,例如“与”、“大于”和“小于”字符


严格来说,这不是有效的XML。您应该要求XML的创建者正确地转义&等,或者将它们包装在CDATA部分中。这就是为什么不应该通过简单的字符串处理生成XML,除非非常小心taken@GyroGearless当前位置不知道他们是否会这样做。将与他们核实。谢谢,伙计。是的,我从一些外部源获取此文件,我已尝试使用StringEscapeUtils.escapeXmlxml commons.lang包方法,该方法将所有、、、&替换为相应的html实体、、&;。但是,如果我取消对该内容的解析,则会出现xml解析异常。好吧,除非您获得有效的xml,否则您将无法将其作为xml进行取消解析、解析或以其他方式处理。如上所述,除非您能够让源代码发送有效的XML,否则您需要使用正则表达式来查找和替换不匹配的and&s,而不使用符号和分号。
    <Sample>
     <DATA>
       <ID>12345</ID>
       <NAME>Person1</NAME>
       <MAIL>sa@gmail.com</MAIL>
       <Class>A&B</Class>
    </DATA>
    <DATA>
       <ID>12345</ID>
       <NAME>Person1</NAME>
       <MAIL>sa@gmail.com</MAIL>
       <Class>A<B</Class>
    </DATA>
   </Sample>
[org.xml.sax.SAXParseException : The entity must immediately follow the '&' in the entity reference.]