4

の SDK ドキュメントを読んだ後xml.Utility.unescape、これは の逆の動作だと思いますが、xml.Utility.escape何もしていないようです。

scala> xml.Utility.escape("& <")
res0: String = &amp; &lt;

scala> val sb = new StringBuilder
sb: StringBuilder = 

scala> xml.Utility.unescape("&amp; &lt;", sb)
res1: StringBuilder = null

scala> sb.toString
res2: String = ""

正しく使用するにはxml.Utility.unescape

4

1 に答える 1

5

ドキュメントをチェックアウトしましたが、unescapeかなりがっかりしました...

エスケープされていない文字列を s に追加します。amp は & になり、lt は < になります。

ref が定義済みエンティティでない場合は null を返します。

unescapeしたがって、に単一の文字を追加することを意図しているようですStringBuilder。それ"&amp; &lt;"は「事前定義されたエンティティではない」と考えたnullため、res1.

REPL でのいくつかのテスト:

scala> unescape("amp", sb)
res9: StringBuilder = &

scala> unescape("lt", sb)
res10: StringBuilder = &<

scala> unescape(" ", sb)
res11: StringBuilder = null
于 2013-03-15T11:47:38.730 に答える