小编典典

如何使SAXParser忽略转义码

java

我正在编写一个Java程序来读取XML文件,实际上是一个iTunes库,它是XML
plist格式。我设法解决了这种格式引发的大多数障碍,除非遇到包含的文本&。XLM文件将“与”号表示为,&并且我只能设法在文本的&任何特定部分之后读取文本。

有没有办法禁用转义码检测?我正在使用SAXParser。


阅读 246

收藏
2020-11-26

共1个答案

小编典典

您尝试执行的操作有些混乱。

如果您尝试解析的文件格式包含“&” &字符,则它 不是 格式正确的XML。&井号表示为格式良好的XML中的字符实体(例如)。

  • 如果真的应该是真正的XML,那么在编写/生成文件的过程中都会出现错误。

  • 如果它不是真正的XML(即,“&”号不是一个错误),那么您可能不应该尝试使用XML解析器对其进行解析。


知道了 XML实际上已经正确编码,但是您没有正确使用SO标记。

看来您真正的问题是,characters(...)分别为之前的文本&,(已解码的)&文本和之后的文本分别调用了回调&。您只需要通过将文本块重新结合在一起来处理此问题。

的javadoc这样ContentHandler.characters()说:

“解析器将调用此方法来报告字符数据的每个块。SAX解析器可以在单个块中返回所有连续的字符数据,也可以将其拆分为几个块……”

2020-11-26