• ベストアンサー

JavaでXMLのNodeツリーをファイル出力したいのですが

こんにちは、domagooです。 Javaで、XMLのNodeツリーの内容をファイル出力したいと思っています。 MSXMLですと、IXMLDOMDocumentオブジェクトに対して、 pXmlTree -> save("ファイルパス"); で、ツリーの内容を一度にファイルに保存することができますが、Javaにもそのようなツリーの内容を一度に保存する方法はありますでしょうか。 もし一度に保存する方法がなければ、どのような方法で保存するのが一般的であるか、ご教示ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.1

この話は、JAVAのバージョンによってやり方が変わってきます。 たしか、JAVA1.3ではXMLが正式サポートされていなかったはずで、ファイルへの保存はパーサーの実装に依存していました。 JAVA1.4ではXMLが正式サポートされましたが、DOMの仕様にファイルの入出力がサポートされていなかったため、JAVA側で機能を実現しました。 JAVA5.0ではDOMのLEVEL3に対応したため、DOMのAPIでできると聞いています。 今回はJAVA1.4での方法を記述しておきます。 import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; TransformerFactory tff=TransformerFactory.newInstance(); Transformer tf = tff.newTransformer(); tf.setOutputProperty("encoding", "Shift_JIS"); tf.transform( new DOMSource(document),  new StreamResult( new File(filename) ) );

domagoo
質問者

お礼

ありがとうございます! 教えていただいた内容で、出力ができました。 お世話になりました。

関連するQ&A