xml中非法字元

2021-05-22 22:39:57 字數 1011 閱讀 4468

今使用jdom從資料庫讀取資料生成xml檔案,然後再解析xml檔案時,總是出現0x0,非法字元,經過搜尋,問題原因及解決方法如下:

原因:

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) &        &            &

單引號  』

'            '

雙引號  」          "            "

大於號  >         >                >

小於號  <         <                  <

我們只需要對這個五個字元,進行相應的替換就可以了

解決方法:

用正規表示式替換,str.replaceall(,"")

用正規表示式表示如下:str.replaceall("[<>&'/"//x00-//x08//x0b-//x0c//x0e-//x1f]", "")此表示式使用不通過。

另有表示式:【^(?:[/u4e00-/u9fa5]*/w*/s*)+$】測試不成功

str.replaceall("[//x00-//x08//x0b-//x0c//x0e-//x1f]", "") 測試成功

JSON檔案中非法字元的處理

json檔案中非法字元的處理 沙湖王 json是一種很好的資料格式,但是簡單之處也有麻煩的地方,比如如果json的字串裡面出現了雙引號的話,那真是搞死人了。之前我很傻,每次丟擲異常,我就根據異常顯示的位置,去慢慢乙個乙個找錯誤的地方,昨天才發現,網上有很多免費的json檢查的 這個就很不錯,把你的j...

xml中的非法字元

今使用jdom生成xml檔案的時候,總是出現0x0,0x8為非法字元,經過搜尋,問題原因及解決方法如下 原因 xml中需要過濾的字元分為兩類,一類是不允許出現在xml中的字元,這些字元不在xml的定義範圍之內。另一類是xml自身要使用的字元,如果內容中有這些字元則需被替換成別的字元。第一類字元 對於...

XML中的非法字元及過濾方法

xml中有以下字元不能出現,否則,xml將不能被正確解析 如果在xml中出現了非法字元呢必須將其過濾掉!過濾的方法很簡單,替換就可以了 例如在php xml parser create 中,就可以這麼做 parser xml parser create 建立乙個parser編輯器 xml set e...