xml中的非法字符


今使用Jdom生成xml文件的時候,總是出現0x0,0x8為非法字符,經過搜索,問題原因及解決方法如下:

 

原因:

xml中需要過濾的字符分為兩類,一類是不允許出現在xml中的字符,這些字符不在xml的定義范圍之內。另一類是xml自身要使用的字符,如果內容中有這些字符則需被替換成別的字符。
 
第一類字符:
對於第一類字符,我們可以通過W3C的XML文檔來查看都有哪些字符不被允許出現在xml文檔中。
XML允許的字符范圍是“#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]”。因此我們可以把這個范圍之外的字符過濾掉。
需要過濾的字符的范圍為:
\\x00-\\x08
\\x0b-\\x0c
\\x0e-\\x1f
 
第二類字符:
對於第二類字符一共有5個,如下:
字符                HTML字符        字符編碼
和(and) &        &            &
單引號  ’ '            '
雙引號  ”          "            "
大於號  >        >                  >
小於號  <        &lt;                   &#60;
我們只需要對這個五個字符,進行相應的替換就可以了
 
解決方法:
 
用正則表達式替換,

用正則表達式表示如下:[<>&'\"\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM