我一直在使用JAXB,而現在來解析XML看起來大致是這樣的:使用jaxb解析無效的xml - 解析器可以更寬鬆嗎?
<report> <-- corresponds to a "wrapper" object that holds
some properties and two lists - a list of A's and list of B's
<some tags with> general <info/>
...
<A> <-- corresponds to an "A" object with some properties
<some tags with> info related to the <A> tag <bla/>
...
<A/>
<B> <-- corresponds to an "B" object with some properties
<some tags with> info related to the <B> tag <bla/>
...
</B>
</report>
負責編組XML的側面是可怕的,但在我的掌握。
它經常發送無效的xml字符和/或格式不正確的xml。
我與負責方交談,得到了很多錯誤,但有些錯誤似乎無法解決。
我希望我的解析器儘可能地原諒這些錯誤,並且在不可能的情況下,從錯誤的xml中獲取儘可能多的信息。
因此,如果XML包含100 A和一個有一個問題,我還是希望能夠保留其他99
這是我最常見的問題:
1. Some info tag inner value contains invalid chars
<bla> invalid chars here, either control chars or just &>< </bla>
2. The root entity is missing a closing tag
<report> ..... stuff here .... NO </report> at the end!
3. An inner entity (A/B) is missing it's closing tag, or it's somehow malformed.
<A> ...stuff here... <somethingMalformed_blabla_A/>
OR
<A> ... Something malformed here...</A>
我希望我解釋自己好。
我真的想從這些XML獲得儘可能多的信息,即使它們有問題。
我想我需要採用一些使用stax/sax和JAXB的策略,但我不知道如何。
如果是100個A,一個A有一個xml問題我不介意拋出這個A.
雖然如果我能夠獲得一個具有儘可能多的數據以便解析錯誤直到出錯的A對象會好得多。
一個簡單的問題有關的問題:你有沒有注意到同樣的錯誤重複出現?例如,標籤在很多地方都沒有關閉? – xwang 2016-07-01 19:36:09