在转换为 XML 文件之前,我需要转义 XML 字符串。我这样做:
Java 代码:
public static final String[][] XML_ENTITIES = {
{"&","&"},{">",">"},{"<","<","'","'","\"","""}
};
public static String escape(String str){
for(int i=0;i<XML_ENTITIES.length;i++){
String name = XML_ENTITIES[i][0];
String value = XML_ENTITIES[i][1];
int idx = str.indexOf(name);
if(idx > -1){
str = str.replace(name, value);
}
}
return str;
}
它工作正常,但在某些情况下会失败。
例子 :
escape(">>,,a,a<<")
输出:
>>,,a,a<<
失败案例:
escape("&>,,a,a<<")
输出:
&amp;>,,a,a<<
如果一个xml字符串包含&
不需要转义的&
字符串中的字符。如果我unescape
将字符串转义并进行转义,则效果很好。我怎么能不转义?