我寫了一個方法來檢查我的XML字符串&。XML轉義碼
我需要修改方法包括以下內容:
<
& LT
>
& GT
\
& guot
&
&安培
\
&者
這裏是方法
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;
}
嗯,沒有人阻礙你打電話'replaceAll'不僅僅是一次...也許我只是不理解這個問題?! – home
這也可能有所幫助(谷歌第二次擊中):http://stackoverflow.com/questions/439298/best-way-to-encode-text-data-for-xml-in-java – home
負面看法( '(!?amp;)')是一個錯誤。輸入可能是純文本。假設輸入是'「在XML中,爲了得到一個&符號,你需要寫'&'''。你的代碼將不正確地離開'&'。 –