2016-06-15 15 views
0

パーサを使用して巨大なXMLファイルのDOMを作成したいとします。しかし、DOMパーサーはメモリホッガーです。だから私は、多くのメモリを使用しないDOMパーサのための代替手段があることを知りたがっていますが、DOMを作成することができます。また、そのような状況を処理するための他の効率的なアルゴリズムやパーサがあるかどうかを提案してください。DOMパーサーを使用せずにXML用DOMを作成する方法

+0

パーサーはあなたのメモリをいっぱいにしませんが、DOM自体はそうです。 – wero

+0

Ok.しかし、構文解析中にDOM以外のメモリにも格納されるオーバーヘッドは多くありませんか? –

+0

なぜパーサーはそれを行うべきですか? – wero

答えて

0

DOMパーサーが多くのメモリを使用するのは、DOMが大量のメモリを使用するためです。

JDOM2やXOMなど、DOMよりもメモリの占有量が少ないツリーモデルがあります。彼らはまた、はるかにユーザーフレンドリーです。

XMLを処理する際に使用されるメモリを減らす方法は他にもたくさんありますが、すべて解析するとXMLで何をしたいかによって異なります。

+0

2つのxmlを正確に区別したいと思います。私の計画は、XMLを解析し、それらをDOMとして保存し、それらを比較することです。解析後、xmlを比較したいと思います。 –

+0

差分は、それ自体では非常に芸術です。ホイールを再開発しようとするよりも、DeltaXMLのような仕事用に設計されたツールを手に入れてみませんか? XSLTやXQueryのように、XML処理用に設計された高水準言語を使用しないでください。 –

0

あなたが言ったように、...

根本的な原因のためのDOMは、メモリhoggerは、JDOMやDOM4Jも同様の問題を持っている...私はJDOM2とfaimilarないのですが、JDOMと多くの共通点を持っているように見えますDOMのメモリの問題は、実際には多くの小さな離散オブジェクトを割り当てるという固有の制限です。

VTD-XMLはDOM、JDOM、DOM4Jからの抜粋です。多くの小さなオブジェクトを割り当てる代わりに、大規模なメモリブロックを内部的に割り当て、劇的なメモリ節約を可能にします...ランダムアクセス機能の大部分を保持しながら、XPath

DOMを構築することはお勧めしませんすべて...あなたはvtd-xmlでできないDOMで何もできません。

関連する問題