簡體   English   中英

使用Stax解析XML文件時出現Unicode(0xb)錯誤

[英]Unicode(0xb) error while parsing an XML file using Stax

在解析XML文件時,Stax會產生錯誤:

Unicode(0xb)錯誤 - 在文檔的元素內容中找到了無效的XML字符(Unicode:0xb)。

只需點擊下面的鏈接,使用帶有特殊字符“x”的xml行。 它不是一個字母字符:當你嘗試將它復制並粘貼到記事本中時,你會將它作為一些符號。 我嘗試使用Stax解析它。 它顯示出上述錯誤。

在此輸入圖像描述

請有人能給我一個解決方案嗎?

提前致謝。

0xB(垂直制​​表符)不是XML中的有效字符。 ASCII 32(0x20,空格)之前唯一有效的字符是0x9(制表符),0xA(回車符)和0xD(換行符)。

簡而言之,您要解析的內容不是XML。

根據XML W3C建議 ,XML文件中不允許使用0xb:

字符范圍[2]字符:: =#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] / *任何Unicode字符,不包括代理塊,FFFE和FFFF。 * /

嚴格來說,您的輸入文件不是XML文件。

每當無效的xml字符出現xml時,它就會出現這樣的錯誤。 當你在記事本++中打開它時,它看起來像VT,SOH,FF這些都是無效的xml字符。 我使用xml版本1.0,我在模式中輸入數據庫之前驗證文本數據

Pattern p = Pattern.compile("[^\u0009\u000A\u000D\u0020-\uD7FF\uE000-\uFFFD\u10000-\u10FFF]+");
retunContent = p.matcher(retunContent).replaceAll("");

它將確保在xml中不會輸入無效的特殊字符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM