如何正确使用xml.Utility.unescape?

时间:2013-03-15 11:36:19

标签: xml scala

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

1 个答案:

答案 0 :(得分:5)

我查看了unescape文档,我非常失望......

  

将未转义的字符串附加到s,amp变为&amp;,lt变为&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