我正在使用java 6並處理一些非常大的xml文檔......我需要解析它們並修改一些值,然後序列化回磁盤。什麼是反序列化和序列化xml文檔的最快方法?
我使用的org.w3c.dom反序列化的XML文件,並修改了一些屬性值,我用JAXP變壓器序列化已經改變了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.
「大」有多大? 10K? 100K?幾千兆字節? – 2013-05-06 19:14:12