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
     }
   }
 }

Есть ли более лаконичный способ написания этой функции?

Ответы на вопрос(7)

Ваш ответ на вопрос