我不熟悉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,其余应保持不变。有没有一种方法可以让你实现这一目标?谢谢
答案 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>
}