ActionScript で記述した関数を Java に移植しようとしていますが、少し問題があります。以下の関数を含めました。質問 #375420 に対するこの回答を見つけましたが、本当に別のクラスを作成する必要がありますか? ありがとう。
public static function replaceXML(str:String):String {
return str.replace(/[\"'&<>]/g, function($0:String):String {
return StringUtil.substitute('&#{0};', $0.charCodeAt(0));
});
}
入力
<root><child id="foo">Bar</child></root>
出力
<root><child id="foo">Bar</child></root>
アップデート
誰かが疑問に思っている場合、これが私の解決策です。シュリ・ハルシャ・チラカパティに感謝します。
public static String replaceXML(final String inputStr) {
String outputStr = inputStr;
Matcher m = Pattern.compile("[&<>'\"]").matcher(outputStr);
String found = "";
while (m.find()) {
found = m.group();
outputStr = outputStr.replaceAll(found,
String.format("&#%d;", (int)found.charAt(0)));
}
return outputStr;
}