我正在编写一个Java程序来读取XML文件,实际上是一个iTunes库,它是XML plist格式。我设法解决了这种格式引发的大多数障碍,除非遇到包含的文本&。XLM文件将“与”号表示为,&并且我只能设法在文本的&任何特定部分之后读取文本。
&
&
有没有办法禁用转义码检测?我正在使用SAXParser。
您尝试执行的操作有些混乱。
如果您尝试解析的文件格式包含“&” &字符,则它 不是 格式正确的XML。&井号表示为格式良好的XML中的字符实体(例如)。
&
如果真的应该是真正的XML,那么在编写/生成文件的过程中都会出现错误。
如果它不是真正的XML(即,“&”号不是一个错误),那么您可能不应该尝试使用XML解析器对其进行解析。
知道了 XML实际上已经正确编码,但是您没有正确使用SO标记。
看来您真正的问题是,characters(...)分别为之前的文本&,(已解码的)&文本和之后的文本分别调用了回调&。您只需要通过将文本块重新结合在一起来处理此问题。
characters(...)
的javadoc这样ContentHandler.characters()说:
ContentHandler.characters()
“解析器将调用此方法来报告字符数据的每个块。SAX解析器可以在单个块中返回所有连续的字符数据,也可以将其拆分为几个块……” 。