0

有没有一种简单的方法可以将 XML 或 HTML 字符转换为其实体编号?我正在使用具有以下功能的 org.apache.commons.lang3:

StringEscapeUtils.escapeXml() StringEscapeUtils.escapeHtml4()

然而,这些是用实体名称而不是数字替换尖括号等。

例如 StringEscapeUtils.escapeXml("<"); //返回 < 但我需要 <

有没有办法让这些函数返回 < ?

谢谢你。

4

1 回答 1

1

使用 Springsframework 中的 HtmlUtils

import org.springframework.web.util.HtmlUtils;
[...]
HtmlUtils.htmlEscapeDecimal("&")` //gives &#38;

或者你可以试试这段代码:

public static String escapeHTML(String s) {
StringBuilder out = new StringBuilder(Math.max(16, s.length()));
for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    if (c > 127 || c == '"' || c == '<' || c == '>' || c == '&') {
        out.append("&#");
        out.append((int) c);
        out.append(';');
    } else {
        out.append(c);
    }
}
return out.toString();

}

于 2014-08-18T10:02:39.080 回答