I'm writing a tool to update some xml files (pom.xml in this case) with scala because the effort it would take in java is significantly higher than (in theory) it is with scala. I can parse the xml file just fine, but I need to replace nodes in the existing xml and rewrite the result. for example:
<dependency>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
So I want to find all nodes like this and replace them with:
<dependency>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0</version> <!-- notice the lack of -SNAPSHOT here -->
</dependency>
So, I can get all the version nodes simply enough, but how to replace them with the node that I want?
// document is already defined as the head of the xml file
nodes = for (node <- document \\ "version"; if (node.text.contains("SNAPSHOT"))) yeild node
then I want to do something like:
for (node <- nodes) {
node.text = node.text.split("-")(0)
}
which doesn't work because node is immutable. I looked at the copy method for a Node, but it doesn't include text
as a parameter.
pointers to examples/doc would be appreciated.
Thanks, Jeff