我正在使用 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.