java - XML 转义码

标签 java xml string

我编写了一个方法来检查 XML 字符串中的 &。

我需要修改该方法以包含以下内容:

< <<

> >

\郭特

&

\ &apos

方法如下

private String xmlEscape(String s) {
    try {
        return s.replaceAll("&(?!amp;)", "&amp;");
    }
    catch (PatternSyntaxException pse) {
        return s;
    }
} // end xmlEscape()

这是我的使用方式

 sb.append("            <Host>" + xmlEscape(url.getHost()) + "</Host>\n");

如何修改我的方法以合并其余符号?

编辑

我想我一定没有正确表达这个问题。 在 xmlEscape()方法我想检查字符串中的以下字符 < > ' " & ,如果找到它们,我想用正确的字符替换找到的字符。

示例:如果有一个字符 &该字符将替换为 &amp ;在字符串中。

你能做一些像这样简单的事情

try {
   s.replaceAll("&(?!amp;)", "&amp;");
   s.replaceAll("<", "&lt;");
   s.replaceAll(">", "&gt;");
   s.replaceAll("'", "&apos;");
   s.replaceAll("\"", "&quot;");
   return s;
}
catch (PatternSyntaxException pse) {
   return s;
}   

最佳答案

您可能需要考虑使用 Apache commons StringEscapeUtils.escapeXml 方法或许多其他 XML 转义实用程序之一。这使您能够正确转义为 XML 内容,而不必担心当您需要转义主机名以外的其他内容时会丢失某些内容。

关于java - XML 转义码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12569441/

相关文章:

xml - 关于 XPath

Android图像缩放问题

r - 用字典中的第一个匹配项替换字符串

java - 如何检查字符串中的字符是数字还是字母

javax.net.ssl.SSLHandshakeException : Received fatal alert: unknown_ca

java - Android Studio : Add radiobutton string to database

java - findViewById(R.id.activity_main) --> 无法解析符号 'activity_main'

jquery - 使用 JQuery 将新属性添加到 HTML 字符串

java - 正则表达式中的元字符

java - 如何在 Java 7 中有效地连接 id 上的两个列表?