假设我有一个 Anti-XML 对象,例如:
import com.codecommit.antixml._
val child = <child attr="val">...</child>.convert
我想构造一个包含 child
作为子项的 XML 对象:
<parent foo="bar"><foo/><child attr="val">...</child><foo/></parent>
显而易见的方法是
val parent : Elem = <parent foo="bar"><foo/>{ child }<foo/></parent>.convert
问题是 Scala 的 XML 文字无法识别 Anti-XML 的对象,因此 child
被转换为字符串,并作为文本节点嵌入到 parent
中:
<parent foo="bar"><foo/><child attr="val">...</child><foo/></parent>
如何解决这个问题?
最佳答案
XML.loadString
应该可以解决问题:
val child: com.codecommit.antixml.Elem = <child />.convert
val parent: scala.xml.Elem = <parent>{scala.xml.XML.loadString(child.toString)}</parent>
对于更复杂的深度操作场景,我认为避免使用文字并使用内置的 Zipper
支持会做得更好。
关于xml - 构建包含 Anti-XML 对象的 XML 文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11198074/