2014-01-22 190 views
0

我收到org.xml.sax.SAXParseException:在文檔的元素內容中找到無效的XML字符(Unicode:0x12)。客戶端錯誤。有人可以通過使用java.util.regex.Pattern來說明什麼是正則表達式來替換這些字符,以便我可以在服務器端進行排除。XML解析錯誤

試圖..

圖案圖案= Pattern.compile( 「\ 0012」);

,但沒有奏效

+0

可能的重複:https://stackoverflow.com/questions/10148145/need-to-find-invalid-xml-parts –

回答

0

當你需要尋找一些正則表達式的正則表達式分析器可能遇到麻煩的字面字符串時,在字面上使用Pattern.quote()。

此外,你使用的是八進制編碼,而不是一個unicode - 你在\之後忘了你。

在這種情況下:

圖案圖案= Pattern.compile(Pattern.quote( 「\ u0012」));

注意:我還沒有試過這種特殊情況!

+0

它的工作,也Pattern PATTERN = Pattern.compile(「\ u0012」); – java1977

+1

@ java1977我認爲它可能會,但我經常忘記正則表達式的具體細節,我達到報價(),當有任何問題。寫作比閱讀一切都快,而且不像我一樣,從不犯錯誤。 –

+0

這是有用的知道,謝謝埃德。 – java1977

1

最 「控制字符」(< 32 ASCII)不在XML 1.0合法的。其中一些在XML 1.1中爲合法。如果您的用戶希望得到他們的支持,您可能需要確保您使用的是可以處理新建議書的解析器。