Scala - XML检查/修改

时间:2013-05-02 09:32:59

标签: xml scala

我不熟悉XML处理和Scala。基于下面的示例xml,我几乎没有问题/事情可以实现

val xml = <begin>
    <definition>
         <var>x</var>
         <install>new version</install>
    </definition>
</begin>

xml的类型是Elem。现在,如果我想搜索给定的标签/子标签,那么就说

 xml \\ "definition"

我正在获得Seq [Node]。 Elem和此类型之间有什么区别?我可以通过查询特定标签获得Elem,即从该标签开始返回elem吗?

我的第二个问题是关于修改XML。是否有一种简单的方法来实现形式:“安装”标签之间的每个值 - &gt;替换为XXXX,其余应保持不变。有没有一种方法可以让你实现这一目标?谢谢

1 个答案:

答案 0 :(得分:1)

要了解Elem(DOM元素)和Node之间的区别,请先查看此链接:

What's the difference between an element and a node in XML?

在高层次上,Node是一个抽象概念,表示XML文档中的位置(属性,文本节点,元素),而Element是具体类型的Node,由此类表示;

<install>foo</install>

现在,对于问题的第二部分,我将更多地关注将动态内容放入一组固定的XML而不是尝试改变现有的XML。你可以这样做:

def buildXml(version:String) = {
  <begin>
    <definition>
      <var>x</var>
      <install>{version}</install>
    </definition>
  </begin>
}