9

組み込みの 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>

しかし、私はそれを次のようにしたい:

<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>

フォーマットを制御するにはどうすればよいですか? XML を生成するコードは次のとおりです。

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

ここにtoXMLがあります:

def toXML:Node = XML.loadString(String.format("<%s>%s</%s>", tag, value.toString, tag))
4

1 に答える 1

17

次を使用しPrettyPrinterます。

val xml = // your XML

// max width: 80 chars
// indent:     2 spaces
val printer = new scala.xml.PrettyPrinter(80, 2)

printer.format(xml)

ところで、あなたはあなたtoXMLを次のように置き換えることを検討したいかもしれません:

def toXML: Node = Elem(null, tag, Null, TopScope, Text(value.toString))

これはおそらく高速であり、あらゆる種類のエスケープの問題を取り除きます。(value.toString評価結果が の場合は</a>?)

于 2013-06-13T21:03:08.553 に答える