XML関連モジュールのまとめ

仕事でXMLRSSを処理する機会がありそうなので、XML関連のPerlモジュールを調べていました。

どうやらXML::Simpleは遅いらしいです。コンパイル済みのバイナリである expat(XML::Parser)を使っているはずなのに、なんででしょうね。

正規表現の方が速い理由はなんとなしに分かりますが(その分、汎用性は低くなる訳ですから)、数百倍遅い、とか言われると、ちょっと避けたくなってしまいますよね。

XMLのパースに使われるPerlモジュールについて、今後使いそうなものを列挙しておきます。全部使ったわけでもBenchmarkをとった訳でもなく、あくまでいろんなサイトを見回った結果です。これからいろいろ、調べてみないといけないですが、とりあえずアタリをつけるためのものとして。

モジュール名 PurePerl 速度 機能 特徴
XML::Simple ×(XML::SAX? XML::Parser=expat?) △(XML::Parser指定した時は?) HASH展開/生成 基本な印象
XML::TreePP HASH展開/生成 手軽に使えそう
XML::Mini × HASH展開/生成 日本語がダメらしい
XML::LibXML ×(libxml2) XPath XPathにより指定
XML::Parser::Lite SOAP::Liteの一部 Parse 正規表現ベースのXML::Parser