2012-01-22 6 views
8

まず:xmlドキュメント情報をscala.xmlにどのように追加しますか?すべての

  • 私は暗黙のXMLで、明示的な方法を使用してXMLドキュメントを構築したくない抗XMLを認識していて、スケールが、私は、標準scala.xml
  • を使用したいです構文は

[OK]をScalaのに組み込まれたので、私はコードの、このような作品を持っている:

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のヘッダー付きのハッキングではありません。

+1

を追加することですあなたは= 入力を 'あなたが' valのXMLを言うことができるScalaのような素晴らしい言語を使用している、あなたはそれを好むいけませんか? ;)それはあなたの選択のため、そのオキですが、なぜ「他の方法」を使うのが良いのですか? – OverStack

+0

@OverStack、この機能は実際には欠陥であるためです。私からの言葉は、どのタイプミスでも非常に壊れやすいので、あなたが噛むまであなたのエラーは見られません。第2の事柄 - 賞が存在するという事実、あなたがそれを使うべきではありません。他の人の言葉:http://www.codecommit.com/blog/scala/working-with-scalas-xml-supportそして、VBにはHTMLに関する記事がありましたが、今は見つけられません。 – greenoldman

+0

@greenoldmanそれは私だけですか、あなたのコードはNull Pointer Exceptionを与えますか? –

答えて

7

私が見つけた唯一の解決策は、次のコード

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

大変ありがとうございます。scala.xmlにはもっと直接的なものはありません。 – greenoldman

+0

もう1つ - 'PrinterWriter'よりも' StringWriter'を使う方が便利です(一般的には、出力XMLを文字列として取得するのが非常に簡単です)。 – greenoldman

関連する問題