XPathインジェクションの回避
詳細はここ
http://www.xmldb.jp/xpriori_forum/developer/tutorial/tutorial_webapplication_9.html
コードもあるけど若干変なので書き直してみた。
public static String escapeXPath(String str) { if (str == null) { return null; } if (str.indexOf('"') == -1) { return "\"" + str + "\""; } StringBuilder sb = new StringBuilder("concat("); String[] vals = str.split("\\\"", -1); for (int i = 0; i < vals.length; i++) { if (i != 0) { sb.append(",'\"',"); } sb.append('"').append(vals[i]).append('"'); } return sb.append(")").toString(); }
"が連続すると残念出力なのは変わらず。