Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Scala中生成格式化XML_Xml_Scala_Formatting - Fatal编程技术网

在Scala中生成格式化XML

在Scala中生成格式化XML,xml,scala,formatting,Xml,Scala,Formatting,我使用嵌入式Scala生成了一些XML,但它不会将生成的XML放在单独的行中 现在看来是这样, <book id="0"> <author>Gambardella, Matthew</author><publish_date>Sun Oct 01 00:00:00 EDT 2000</publish_date><description>An in-depth loo k at creating applicati

我使用嵌入式Scala生成了一些XML,但它不会将生成的XML放在单独的行中

现在看来是这样,

<book id="0">
      <author>Gambardella, Matthew</author><publish_date>Sun Oct 01 00:00:00 EDT 2000</publish_date><description>An in-depth loo
k at creating applications with XML.</description><price>44.95</price><genre>Computer</genre><title>XML Developer's Guide</title>
    </book>

甘巴德拉,马修森10月1日00:00:00美国东部夏令时2000年深度厕所
k使用XML.44.95ComputerXML开发人员指南创建应用程序
但我希望它看起来像这样:

<book id="0">
  <author>Gambardella, Matthew</author>
  <publish_date>Sun Oct 01 00:00:00 EDT 2000</publish_date>
  <description>An in-depth look at creating applications with XML.</description>
  <price>44.95</price>
  <genre>Computer</genre>
  <title>XML Developer's Guide</title>
</book>

马修·甘巴德拉
星期日美国东部时间2000年10月1日00:00:00
深入了解如何使用XML创建应用程序。
44.95
电脑类
XML开发人员指南
如何控制格式? 下面是生成XML的代码

<book id="0">
  { keys map (_.toXML) }
</book>

{键映射({.toXML)}
以下是toXML:

def toXML:Node = XML.loadString(String.format("<%s>%s</%s>", tag, value.toString, tag))
def-toXML:Node=XML.loadString(String.format(“%s”,标记,value.toString,标记))
使用:

顺便说一下,你可能想考虑用< < /P>替换你的代码>
def toXML: Node = Elem(null, tag, Null, TopScope, Text(value.toString))

这可能更快,并且消除了所有类型的转义问题。(如果
value.toString
的计算结果为
?)

除了作为XML
节点而不是
字符串返回的
PrettyPrint
之外,还有其他方法吗?我希望能够
直接打印
已格式化的节点,而无需先使用预打印机。现在我正在构建节点,非常好地打印,然后解析回一个节点
XML。loadString(prettyPrinter format XML)
似乎效率不高。@tsjnsn我明白你的意思。显然,
XML.loadString
保留了不重要的空白。这不是XML解析器所必需的行为(请参阅),除非在文档本身中指定(因此将来可能会更改)。我建议您仅在实际需要
字符串时才使用
预打印机
。可能存在重复的
def toXML: Node = Elem(null, tag, Null, TopScope, Text(value.toString))