如何使用scala.xml添加xml文档信息?

gre*_*man 10 xml document scala creation

首先:

  • 我知道反xml和scale,但我想使用标准的scala.xml
  • 我更喜欢使用显式方法构建xml文档,而不是使用Scala内置的隐式xml语法

好的,所以我有这样一段代码:

val text = new scala.xml.Text("just a text")
val root = new scala.xml.Elem(null,"element",null,scala.xml.TopScope,text)
val doc = new scala.xml.Document()
doc.docElem = root
println(doc.toString())
Run Code Online (Sandbox Code Playgroud)

几乎不错,但结果我得到:

<element>just a text</element>
Run Code Online (Sandbox Code Playgroud)

我也想得到XML标题,如:

<?xml version="1.0"?>
<element>just a text</element>
Run Code Online (Sandbox Code Playgroud)

问题:如何添加?

当然,从常识的方面来说,不是一些println带有标题的额外逐字的黑客攻击;-).

Nik*_*nov 10

我发现的唯一解决方案是添加以下代码

val writer : PrintWriter = new PrintWriter(System.out)
XML.write(writer,root,"utf-8",true,null)
writer.flush()
Run Code Online (Sandbox Code Playgroud)

  • 还有一件事-使用StringWriter比使用PrinterWriter更为有用(因为这样很容易将输出xml作为字符串获取)。 (2认同)