我有一些看起来像这样的代码......
val text = "<em>emphasized</em>"
val xml = <span>This is some {text} xml</span>
“text”值实际上来自数据库,但它将是一个包含“em”元素标记的字符串值。
我的问题是如何转换2个String标签,“&lt; em&gt;”和“&lt; / em&gt;”,进入NodeSeq内部的实际xml ...当放置它的片段返回NodeSeq时,我希望“em”标签是一个实际的xml元素,而不是xml的字符串表示形式
答案 0 :(得分:1)
scala.xml.XML.loadString(String): scala.xml.Elem
注意:这会返回Elem
并且需要(显然)理智的XML输入。以下字符串将(例如)引发异常:
"<em>emphasized</em><a/>" // no Elem but a NodeSeq
"<em>empha<sized</em>" // invalid XML
您可以通过添加一些虚拟XML标记来清理第一个字符串。
答案 1 :(得分:1)
如果您没有有效的XML代码段,另一个答案是将xml
组成String
,然后使用XML.loadString
将所有内容转换为XML。