解析不正確生成的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