我想写一个Node (xml's node)
到xml文件的列表。
写作:
val xml = <x>{nodes}</x>
其中节点是节点列表 - 我将所有节点都放在一行中。
如何在新行中打印每个节点?
答案 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>