fix escape bug

This commit is contained in:
Looly
2021-06-24 07:53:21 +08:00
parent a97e967ecd
commit 949c7a856e
14 changed files with 166 additions and 36 deletions

View File

@@ -331,11 +331,11 @@ public class XML {
if (i > 0) {
sb.append('\n');
}
sb.append(EscapeUtil.escapeHtml4(val.toString()));
sb.append(EscapeUtil.escapeXml(val.toString()));
i++;
}
} else {
sb.append(EscapeUtil.escapeHtml4(value.toString()));
sb.append(EscapeUtil.escapeXml(value.toString()));
}
// Emit an array of similar keys
@@ -377,7 +377,7 @@ public class XML {
}
if (object.getClass().isArray()) {
if (ArrayUtil.isArray(object)) {
object = new JSONArray(object);
}
@@ -392,10 +392,12 @@ public class XML {
return sb.toString();
}
String string = EscapeUtil.escapeHtml4(object.toString());
String string = EscapeUtil.escapeXml(object.toString());
return (tagName == null) ?
"\"" + string + "\"" : (string.length() == 0) ? "<" + tagName + "/>"
: "<" + tagName + ">" + string + "</" + tagName + ">";
}
}

View File

@@ -14,4 +14,15 @@ public class XMLTest {
Assert.assertEquals("<aaa>你好</aaa><键2>test</键2>", s);
}
@Test
public void escapeTest(){
String xml = "<a>•</a>";
JSONObject jsonObject = XML.toJSONObject(xml);
Assert.assertEquals("{\"a\":\"\"}", jsonObject.toString());
String xml2 = XML.toXml(JSONUtil.parseObj(jsonObject));
Assert.assertEquals(xml, xml2);
}
}