Scala - изменение вложенных элементов в xml
Я изучаю Scala, и я ищу, чтобы обновить вложенный узел в некоторых XML. У меня что-то работает, но мне интересно, если это самый элегантный способ.
У меня есть некоторые XML:
val InputXml : Node =
<root>
<subnode>
<version>1</version>
</subnode>
<contents>
<version>1</version>
</contents>
</root>
И я хочу обновитьверсия узел вподузел, но не один всодержание.
Вот моя функция:
def updateVersion( node : Node ) : Node =
{
def updateElements( seq : Seq[Node]) : Seq[Node] =
{
var subElements = for( subNode <- seq ) yield
{
updateVersion( subNode )
}
subElements
}
node match
{
case <root>{ ch @ _* }</root> =>
{
<root>{ updateElements( ch ) }</root>
}
case <subnode>{ ch @ _* }</subnode> =>
{
<subnode>{ updateElements( ch ) }</subnode>
}
case <version>{ contents }</version> =>
{
<version>2</version>
}
case other @ _ =>
{
other
}
}
}
Есть ли более лаконичный способ написания этой функции?