将List [Node]写入scala中的xml文件

时间:2015-01-19 08:35:15

标签: xml scala nodes

我想写一个Node (xml's node)到xml文件的列表。

写作:

 val xml = <x>{nodes}</x>

其中节点是节点列表 - 我将所有节点都放在一行中。

如何在新行中打印每个节点?

1 个答案:

答案 0 :(得分:2)

Here's the answer.简而言之,您可以scala.xml.PrettyPrinter为您的目的。您还应该记住(您可能会这样做)这些类在2.11版本中附带在单独的库中。

E.g:

scala> val printer = new scala.xml.PrettyPrinter(80, 2)

scala> val nodes = List(
           <lol>node level 1</lol>, 
           <bar><foo>node level 2</foo></bar>
       )

scala> printer.formatNodes(nodes)
res1: String =
<lol>node level 1</lol><bar>
  <foo>node level 2</foo>
</bar>

实际上,当我查看结果时,我发现它与所需的输出略有不同。我建议使用更长一点,但更符合您的期望,变体:

nodes.map(node => printer.format(node)).mkString("\n")

这会将每个节点分开\n

<lol>node level 1</lol>
<bar>
  <foo>node level 2</foo>
</bar>