【问题标题】:How do you add xml document info with scala.xml?如何使用 scala.xml 添加 xml 文档信息?
【发布时间】:2012-02-16 09:53:55
【问题描述】:

首先:

  • 我知道 anti-xml 和 scales,但我想使用标准 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())

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

<element>just a text</element>

我也想获取 XML 标头,例如:

<?xml version="1.0"?>
<element>just a text</element>

问题:如何添加?

当然是以常识的方式,而不是一些额外逐字的黑客攻击 println 和标题 ;-)。

【问题讨论】:

  • 您正在使用像 Scala 这样很棒的语言,您可以在其中说 val xml = &lt;node&gt; input &lt;/node&gt; 而您不喜欢这样吗? ;) 没关系,因为它是你的选择,但你能告诉我为什么使用“其他方式”更好吗?
  • @OverStack,因为这个功能实际上是一个缺陷。我的话,任何拼写错误都非常脆弱,所以在它咬你之前你不会看到你的错误。第二件事——功能存在的事实,并不意味着你应该使用它。来自其他人的消息:codecommit.com/blog/scala/working-with-scalas-xml-support 并且有一篇关于 VB 中的 HTML 的文章,但我现在找不到。
  • @greenoldman 是我还是你的代码给出了空指针异常?

标签: xml scala document creation


【解决方案1】:

我找到的唯一解决方案是添加以下代码

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

【讨论】:

  • 非常感谢,奇怪的是scala.xml没有更直接的东西。
  • 还有一件事——使用StringWriter 比使用PrinterWriter 更有用(通常)(因为这样很容易将输出xml 作为字符串)。
猜你喜欢
  • 1970-01-01
  • 2017-01-28
  • 2023-03-30
  • 2018-11-28
  • 1970-01-01
  • 2014-03-31
  • 2011-09-24
  • 2016-07-30
  • 1970-01-01
相关资源
最近更新 更多