XML中特殊字元的處理方式

2021-06-27 05:25:10 字數 1490 閱讀 6340

專案中需要解析xml,發現如果包含一些特殊字元,使用documenthelper.parsetext(xmlstring)這個方法時會報錯,原因是在 xml 元素中,"<" 和 "&" 是非法的。

"<" 會產生錯誤,因為解析器會把該字元解釋為新元素的開始。

"&" 也會產生錯誤,因為解析器會把該字元解釋為字元實體的開始。

度娘了一下解決方法大致有兩種:

一、對xml字串中的特殊字元進行轉義,**如下:

/** 

* 替換乙個字串中的某些指定字元

* @param strdata string 原始字串

* @param regex string 要替換的字串

* @param replacement string 替代字串

* @return string 替換後的字串

*/

public static string replacestring(string strdata, string regex,

string replacement)

int index;

index = strdata.indexof(regex);

string strnew = "";

if (index >= 0)

strnew += strdata;

return strnew;

} return strdata;

} /**

* 替換字串中特殊字元

*/

public static string encodestring(string strdata)

strdata = replacestring(strdata, "&", "&");

strdata = replacestring(strdata, "<", "<");

strdata = replacestring(strdata, ">", ">");

strdata = replacestring(strdata, "'", "'");

strdata = replacestring(strdata, "\"", """);

return strdata;

} /**

* 還原字串中特殊字元

*/

public static string decodestring(string strdata)

二、採用

cdata 

術語 cdata 指的是不應由 xml 解析器進行解析的文字資料(unparsed character data)

如果文字包含了很多的"<"字元和"&"字元,那麼最好把他們都放到cdata部件中。乙個 cdata 部件以""標記結束

可以參考

**如下:

jmeter中特殊的時間處理方式

需求 1.獲取當前時間的年月日時分秒毫秒 2.生成上乙個月的隨機某天的乙個時間 3.生成乙個年月日時分秒毫秒的乙個時間戳 1.time 獲取時間戳 格式化時間 格式化生成時間格式 2018 06 01 11 08 23 635 預設該公式精確到毫秒級別,13位數 1527822855323 該公式精...

XML特殊字元處理

只能被動接受xml,在xmlreader load的時候報錯,所以改為首先用get請求,string接收,進行特殊字元處理 異常捕獲請求url strurl 返回原字串 n strjson strjson xmlhelper.convertspecialletter strjson 返回處理後字串 ...

XML 特殊字元處理

在 中,有一些符號作為xml 的標記符號,一些特定情況下,屬性值必須帶有這些特殊符號。下面主要是講解一些常用的特殊符號的處理 例一 雙引號的使用。雙引號作為xml 屬性值的開始結束符號,因此無法在值中直接使用 處理方式可以分為兩種。a 屬性值中沒有 單引號 那麼可以用單引號 作為屬性值的開始結束符號...