我编写了一个方法来检查 XML 字符串中的 &。
我需要修改该方法以包含以下内容:
<
<<
>
>
\
郭特
&
\
&apos
方法如下
private String xmlEscape(String s) {
try {
return s.replaceAll("&(?!amp;)", "&");
}
catch (PatternSyntaxException pse) {
return s;
}
} // end xmlEscape()
这是我的使用方式
sb.append(" <Host>" + xmlEscape(url.getHost()) + "</Host>\n");
如何修改我的方法以合并其余符号?
编辑
我想我一定没有正确表达这个问题。
在 xmlEscape()
方法我想检查字符串中的以下字符
<
>
'
"
&
,如果找到它们,我想用正确的字符替换找到的字符。
示例:如果有一个字符 &
该字符将替换为 &
;在字符串中。
你能做一些像这样简单的事情
try {
s.replaceAll("&(?!amp;)", "&");
s.replaceAll("<", "<");
s.replaceAll(">", ">");
s.replaceAll("'", "'");
s.replaceAll("\"", """);
return s;
}
catch (PatternSyntaxException pse) {
return s;
}
最佳答案
您可能需要考虑使用 Apache commons StringEscapeUtils.escapeXml 方法或许多其他 XML 转义实用程序之一。这使您能够正确转义为 XML 内容,而不必担心当您需要转义主机名以外的其他内容时会丢失某些内容。
关于java - XML 转义码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12569441/