2015-02-09 2 views
1

Здравствуйте, у меня есть проблема в моей программе Scala. я следующая XML-документПроблема преобразования структуры XML Scala

<mainTag> 
    <a>1</a> 
    <b>2</b> 
    <b>3</b> 
</mainTag> 

После преобразования в формат JSON с net.liftweb.Xml mainTag преобразуется в JSON-объект с полями а, Ь, Ь. И второе значение b теряется.

Не могли бы вы помочь мне с преобразования XML, чтобы что-то вроде:

<mainTag> 
    <a>1</a> 
    <c> 
    <b>2</b> 
    <b>3</b> 
    </c> 
</mainTag> 
+0

Можете ли вы предоставить метод, который вы пробовали до сих пор, чтобы достичь желаемой функциональности? –

ответ

2

Это решение обеспечивает требуемый результат:

val data = <mainTag> 
       <a>1</a> 
       <b>2</b> 
       <b>3</b> 
      </mainTag> 

1)

val elem = <mainTag> 
      { 
       data.child.filter(_.label != "b") ++ 
       <c>{ data \ "b" }</c> 
      } 
      </mainTag> 

2)

val elem = <mainTag> 
      { 
       val parts = data.child.partition(_.label != "b") 
       parts._1 ++ <c>{ parts._2 }</c> 
      } 
      </mainTag> 

Результат:

val p = new scala.xml.PrettyPrinter(80, 2) 
var res = p.format(elem) 

println(res) 
Смежные вопросы