XML関連モジュールのまとめ
仕事でXMLやRSSを処理する機会がありそうなので、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 |