okdtの日記: DOMとSAX 2
日記 by
okdt
XMLのparseのお話。
SAX風味で書いたプログラムをDOM用に書き直すのも、気合ひとつだね。well-formedだと、SAXでparseするのって、「parseのプロセスを楽しみたい」というだけの世界になってしまう気がする。昔のCGIのプログラムを今時風に書き換えたような気分になるのは、わたしだけでしょうか。
あれ?いつの間に301エントリ?(w
皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー
使い分けが必要です (スコア:1, 参考になる)
えと、こちら初めてカキコします。
簡単なCGIなどで XML を処理するなら、SAX、DOMどちらでも好きな方でかまわないと思いますが、long running process で DOM を使う場合、よく注意して使わないとメモリを喰い潰します。また、ひたすら XML を読みこんで HTML で出力、みたいのをくり返す場合は SAX の方がはるかに高速処理できます。
簡単なプログラミングと効率的なプログラミングのバランスを取る [ibm.com]
Re:使い分けが必要です (スコア:1)
XMLを利用する場合、タグのテキスト分だけデータ量が増えてしまいますから、その処理はできるだけ簡単に済ませていく必要がありますものね。
ただ、SAXだとコードが複雑になりがちだし、階層の深いXMLだとタグごとに連想配列なりスタックなりに積んでいかなきゃいけない可能性もあるわけで・・・。ま、コーディングスタイルにもよりますかね。
わたしはDOMとSAXはXMLを「読む」概念という意味での、parse概念の違い程度にしか思っていないので、構造として読解する志向のDOMによるparsingがお好みです。まあ、高速化の必要がある場合は軽いparserを自分で書けばいいのかもですね。