Я пишу инструмент для обновления некоторых xml-файлов (в данном случае pom.xml) с помощью scala, потому что усилия, которые потребуются в java, значительно выше, чем (в теории), в сравнении с scala. Я могу просто разобрать xml-файл, но мне нужно заменить узлы в существующем xml и переписать результат. например:
<dependency>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
Итак, я хочу найти все такие узлы и заменить их на:
<dependency>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0</version> <!-- notice the lack of -SNAPSHOT here -->
</dependency>
Итак, я могу достаточно просто получить все узлы версий, но как заменить их на нужный мне узел?
// document is already defined as the head of the xml file
nodes = for (node <- document \\ "version"; if (node.text.contains("SNAPSHOT"))) yeild node
тогда я хочу сделать что-то вроде:
for (node <- nodes) {
node.text = node.text.split("-")(0)
}
, который не работает, потому что узел неизменен. Я посмотрел на метод копирования для узла, но он не включает text
в качестве параметра.