專案中需要解析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 屬性值中沒有 單引號 那麼可以用單引號 作為屬性值的開始結束符號...