我正從外部來源接收XML文件,而我無法控制它。一些XML文件已損壞。特別是,在文件結尾處,一些結束標記丟失。它是這樣的:如何解析Java中損壞的XML文件?
<?xml version="1.0" encoding="UTF-8" ?>
<a>
<b>
<c/>
</b>
<b>
<c/>
</a>
我認爲我們的系統將會很好,如果我們只是忽略沒有匹配結束標記的元素。
我可以用什麼庫來解析我能從這樣的XML文件中得到什麼?
我正從外部來源接收XML文件,而我無法控制它。一些XML文件已損壞。特別是,在文件結尾處,一些結束標記丟失。它是這樣的:如何解析Java中損壞的XML文件?
<?xml version="1.0" encoding="UTF-8" ?>
<a>
<b>
<c/>
</b>
<b>
<c/>
</a>
我認爲我們的系統將會很好,如果我們只是忽略沒有匹配結束標記的元素。
我可以用什麼庫來解析我能從這樣的XML文件中得到什麼?
您需要自己手動解析它,否則XML解析器將無法處理未正確形成的XML。一種可能性是使用SAX解析器,它將解析文檔直至出錯,然後停止。
XML解析器不應該支持這種行爲。但是,如果您可以確定文件有什麼問題可以做出反應,請將其清理乾淨並重試。
Idk如果JSoup會工作。它應該是寬容的HTML。關於XML的Idk。
您是否有文檔的模式?看起來這可能會對從錯誤中恢復有多容易... – xdhmoore 2014-10-16 14:31:30
有一些解析技術可以以各種方式從這些錯誤中恢復。但是我不知道XML有什麼可用的。我懷疑你想自己開發。 – babou 2014-10-16 14:35:50
使用StAX似乎有竅門 – 2014-10-16 14:48:18