scala用NodeSeq替换NodeSeq中的文本

时间:2011-12-14 17:01:12

标签: xml scala

我有一些看起来像这样的代码......

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的字符串表示形式

2 个答案:

答案 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。

相关问题