1
XMLファイルを作成しようとしています。次のコードを使用してドキュメントを作成することができました。この文書をインデントサポート付きのファイルに書きたいと思います。現在、私のコードは次のようになっています。JavaのファイルにXML文書を書き込む最善の方法はどれですか?
これは、XMlを解析してファイルに書き込む優れた技術です。
public void writeXmlToFile(Document dom) throws IOException {
OutputFormat format = new OutputFormat(dom);
format.setIndenting(true);
XMLSerializer serializer = new XMLSerializer (new FileOutputStream(
new File("sample.xml")), format);
serializer.serialize(dom);
}
またはトランスを使用する方が良い方法です。
public void writeXMLToFile(DOcument dom) throws TransformerException, IOException {
TransformerFactory transFact = TransformerFactory.newInstance();
Transformer trans = transFact.newTransformer();
trans.setOutputProperty(OutputKeys.ENCODING, "utf-8");
trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
trans.setOutputProperty(OutputKeys.INDENT, "yes");
trans.setOutputProeprty("{http://xml.apache.org/xslt}indent-amount", "2");
StreamResult resut = new StreamResult(new FileWriter(output));
DOMSource source = new DOMSource(xmlDOC);
trans.transform(source, result);
writer.close();
}
2つのアプローチの違いは何ですか?そして、これらのテクニックのどれがより良いパフォーマンスを提供しますか?
「より良いパフォーマンス」とは、「CPU時間がより少ない」ということですが、各メソッドでファイルを書き込む回数を100000回とし、消費時間を計算するのはなぜですか? – ZeroOne
あなたはどのXMLSerializerを使用していますか?それはどのパッケージに属していますか? –
私はxercesパーサーを使用しています - "com.sun.org.apache.xml.internal.serialize.XMLSerializer" – JourneyMan