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つのアプローチの違いは何ですか? そして、これらの手法のどれがより良いパフォーマンスを提供しますか?