Scala XML结构转换问题

时间:2015-02-09 13:26:57

标签: xml scala structure transformation

您好我的Scala程序存在问题。 我得到下一个XML文档

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

使用net.liftweb.Xml转换为JSON后,mainTag将转换为带有字段a,b,b的JSON-Object。第二个b值丢失了。

您能否帮我将XML转换为:

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

1 个答案:

答案 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)