私は Java 6 を使用しており、かなり大きいいくつかの xml ドキュメントを処理しています...それらを解析し、いくつかの値を変更してから、ディスクにシリアル化する必要があります。
org.w3c.DOM を使用して xml ドキュメントをデシリアライズし、いくつかの属性値を変更しました。また、JAXP Transformer を使用して、変更された dom ドキュメントをシリアライズしました。しかし、私はそれが本当に遅いことに気づきました...
それで、dom ドキュメントをシリアル化する、または大きな xml ドキュメントを処理する、より効率的な方法があるのではないかと思っています。
更新:
タイマーを使用して、各部分にかかる時間を記録しました。以下はシリアル化です。
// serialize the updated DOM
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
long t0 = timer.currentTimeMillis();
DOMSource source = new DOMSource(dom);
StreamResult result = new StreamResult(doc);
transformer.transform(source, result);
long t1 = timer.currentTimeMillis();
Reporter.log("Finished serializing " + doc.getAbsolutePath() + " in " + (((t1 - t0)) / 1000.0f) + " s.", true);
ログには次のように表示されます。
....
Finished serializing C:\Usrs\Adminstrator\Documents\Docs\InitialDocument_1.xml in 53 s.