import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.commons.text.StringEscapeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
}
if (o instanceof String) {
- return escape ? escapeXml((String) o) : (String) o;
+ return escape ? StringEscapeUtils.escapeXml10((String) o) : (String) o;
};
if (o instanceof Map) {
Object v = entry.getValue();
String key = entry.getKey();
if (v instanceof String) {
- String s = escape ? escapeXml((String) v) : (String) v;
+ String s = escape ? StringEscapeUtils.escapeXml10((String) v) : (String) v;
ss.append(pad(indent)).append('<').append(key).append('>');
ss.append(s);
ss.append("</").append(key).append('>').append('\n');
@SuppressWarnings("unchecked")
private static void generateJson(StringBuilder ss, Object o, int indent, boolean padFirst, boolean escape, boolean quotes) {
if (o instanceof String) {
- String s = escape ? escapeJson((String) o) : (String) o;
+ String s = escape ? StringEscapeUtils.escapeJson((String) o) : (String) o;
if (padFirst) {
ss.append(pad(indent));
}
return s;
}
- private static String escapeXml(String v) {
- String s = v.replaceAll("&", "&");
- s = s.replaceAll("<", "<");
- s = s.replaceAll("'", "'");
- s = s.replaceAll("\"", """);
- s = s.replaceAll(">", ">");
- return s;
- }
-
- private static String escapeJson(String v) {
- String s = v.replaceAll("\\\\", "\\\\\\\\");
- s = s.replaceAll("\"", "\\\\\"");
- return s;
- }
-
private static String pad(int n) {
StringBuilder s = new StringBuilder();
for (int i = 0; i < n; i++) {