在我阅读了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

最佳答案

我查看了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

09-30 17:32