Scala XML更改文字节点

时间:2015-08-01 10:37:25

标签: xml scala replace nodes

现在我有XML像这样:

<root>
<snippet>
  <title></title>
  <content></content>
</snippet>
<snippet>
  <title></title>
  <content></content>
</snippet>
<snippet>
  <title></title>
  <content></content>
</snippet>
.
.
.
</root>

我wana取代了n个片段示例:

   xml = XML.loadFile(xmlFilePath)
    val snippets = xml \\ "root" \\ "snippet"

现在我可以参考每一个 片段(1),片段(2),片段(3)等。

现在如何更改/替换例如片段(5)

1 个答案:

答案 0 :(得分:0)

以下代码可以解决您的问题(Scala版本2.11.4)。

val snippets = originalXML \\ "root" \\ "snippet"
snippets.zipWithIndex map {
    case (node, index) => { // index starts from 0
        if (index == 4) 
            // the new content
            <snippet>
                <title>foo</title>
                <content>bar</content>
            </snippet>
        else node
    }
}