一般再来,我們要求上游傳xml格式字符串時(shí)直接給轉(zhuǎn)義好豹休,或者允許含特殊字符的節(jié)點(diǎn)增加CDATA包圍,但是總有那么一些管殺不管埋的伙伴敏晤,你能不能解析是你的事贱田。
所以,這里我們將xml串中指定skuName節(jié)點(diǎn)里面排除一下嘴脾,其實(shí)我是解析不了的時(shí)候才調(diào)這個(gè)重新轉(zhuǎn)義一遍的男摧,一般不走這里,鏈路不要長(zhǎng)统阿。
public static String replaceTag(String xml,String tagName){
String tagF = "<"+tagName+">";
String tagB = "</"+tagName+">";
String[] a = xml.split(tagF);
int indx = 0;
StringBuilder builder = new StringBuilder();
for (int i=0;i<a.length;i++){
indx = a[i].indexOf(tagB);
if(a[i].indexOf(tagB)>-1){
builder.append(a[i].substring(0,indx).replaceAll("&","&").replaceAll("<","<")).append(a[i].substring(indx));//大于號(hào)是沒事的
}else {
builder.append(a[i]);
}
if(i<a.length-1){
builder.append(tagF);
}
}
return builder.toString();