4

在我阅读了xml.Utility.unescape的 SDK 文档后,我认为这是 的相反操作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 回答