在我阅读xml.Utility.unescape
的SDK文档后,我认为这是xml.Utility.escape
的反向操作,但它似乎根本没有做任何事情:
scala> xml.Utility.escape("& <")
res0: String = & <
scala> val sb = new StringBuilder
sb: StringBuilder =
scala> xml.Utility.unescape("& <", sb)
res1: StringBuilder = null
scala> sb.toString
res2: String = ""
如何正确使用xml.Utility.unescape
?
答案 0 :(得分:5)
我查看了unescape
文档,我非常失望......
将未转义的字符串附加到s,amp变为&amp;,lt变为&lt;等。
如果ref不是预定义的实体,返回 null。
所以似乎unescape
意味着将单个字符附加到StringBuilder
。它认为"& <"
“不是预定义的实体”,因此它会为null
返回res1
。
REPL中的一些测试:
scala> unescape("amp", sb)
res9: StringBuilder = &
scala> unescape("lt", sb)
res10: StringBuilder = &<
scala> unescape(" ", sb)
res11: StringBuilder = null