2014-10-16 17 views
3

我正從外部來源接收XML文件,而我無法控制它。一些XML文件已損壞。特別是,在文件結尾處,一些結束標記丟失。它是這樣的:如何解析Java中損壞的XML文件?

<?xml version="1.0" encoding="UTF-8" ?> 
<a> 
    <b> 
    <c/> 
    </b> 
    <b> 
    <c/> 
</a> 

我認爲我們的系統將會很好,如果我們只是忽略沒有匹配結束標記的元素。

我可以用什麼庫來解析我能從這樣的XML文件中得到什麼?

+0

您是否有文檔的模式?看起來這可能會對從錯誤中恢復有多容易... – xdhmoore 2014-10-16 14:31:30

+0

有一些解析技術可以以各種方式從這些錯誤中恢復。但是我不知道XML有什麼可用的。我懷疑你想自己開發。 – babou 2014-10-16 14:35:50

+0

使用StAX似乎有竅門 – 2014-10-16 14:48:18

回答

1

您需要自己手動解析它,否則XML解析器將無法處理未正確形成的XML。一種可能性是使用SAX解析器,它將解析文檔直至出錯,然後停止。

0

XML解析器不應該支持這種行爲。但是,如果您可以確定文件有什麼問題可以做出反應,請將其清理乾淨並重試。

0

Idk如果JSoup會工作。它應該是寬容的HTML。關於XML的Idk。