解析不正确生成的XML文档时,我得到这个错误:配置的Xerces SAX解析器容忍的XML语法错误
org.xml.sax.SAXParseException: The value of attribute "bar" associated with an element type "foo" must not contain the '<' character.
我知道是什么原因造成的问题。这是这一行:
<foo bar="x<y">42</foo>
应该已经
<foo bar="x<y">42</foo>
我知道,这不是有效的XML,但我的代码必须下载和分析类似的文件无人值守和出于政治原因,它可能不可能说服供应商修复有问题的程序,尤其是当其他程序正在读取文件并容忍此错误时。
有什么办法可以配置Xerces来容忍它吗?目前它将其视为致命错误。实现ErrorHandler
忽略它是不令人满意的,因为然后文档的其余部分未被解析。
或者,你可以建议另一个可以配置为容忍这个错误的基于流的解析器吗?使用DOM解析器不可行,因为这些文档会运行到数百兆字节。
这是一个政治问题。它需要政治解决方案,而不是技术方案。 – 2010-07-23 07:25:28
Xerces可能不会容忍它,但是像jsoup这样的替代库(https://jsoup.org/)可能更适合这种情况。它看起来最初是为HTML设计的,但是我已经使用它来成功地从错误的XML中读取数据。 http://stackoverflow.com/questions/9886531/how-to-parse-xml-with-jsoup – 2016-10-17 21:43:30