web-dev-qa-db-ja.com

Perlに最適なXMLパーサーは何ですか?

私は多くのPerlXMLパーサーを試しました。 Sablotron Parserに非常に興味がありましたが、Windowsボックスにインストールするのはとても面倒です。現在、私は XML :: LibXMLXML :: LibXSLT の両方を使い始めました。どちらも必要なことはすべて実行しているようです。

それらもかなり標準的なようです。これよりも優れたXMLパーサーはありますか?

32
Xetius

かなり良いものを使っていると思います。 XML :: LibXML 、MattSergeantおよびChristianGlahnのDanielVelliardのPerlインターフェース libxml2 は、私が知っているより高速なXMLパーサーの1つです。

24
mmcdole

人々が言っ​​ているように、それは本当にあなたのニーズに依存します。サイズが約100MbのXMLファイル( [〜#〜] tair [〜#〜] からの遺伝子注釈、染色体ごとに1つのファイル)を解析するために、mirodの XML :: Twig モジュール。コールバックを設定して、関心のある要素を解析し、各サブドキュメントをXML :: Simpleツリーとして表示できます。これは、SAXパーサー(ファイルをストリームとしてスキャンする)とDOMパーサー(興味深い部分をより簡単に処理する)の利点を組み合わせたものです。

12
Dotan Dimet

スピード、パワー、機能が必要な場合は、XML :: LibXMLが最適です。ただし、使いやすさを求めている場合は、 XML :: Simple が実行可能な代替手段です。

10
Joe Casadonte

私の経験では XML :: Simple はXMLの迅速で汚い解析に最適です。 XML標準に常に準拠しているとは限らないサードパーティからのデータを解析するために使用します。 XML :: Simpleは有益なエラーをスローし、非常に迅速に実行を開始します。

5
aekeus

(実際には答えではなくコメントですが、コメントすることはできません...)

XML :: Simpleはここで言及されています。
(数年前から数少ないことは知っていますが、これは今日Googleに表示されました...)

ただし、そのサイト( http://metacpan.org/pod/XML::Simple )は次のように述べています。

このモジュールのステータス

新しいコードでこのモジュールを使用することはお勧めしません。より直接的で一貫性のあるインターフェースを提供する他のモジュールが利用可能です。特に、XML :: LibXMLを強くお勧めします。

このモジュールの主な問題は、多数のオプションと、これらのオプションが相互作用する任意の方法です。多くの場合、予期しない結果が発生します。

バグ修正とドキュメント修正を含むパッチは大歓迎ですが、新機能が追加される可能性は低いです。

4
Zvika

また、下にLibXMLを使用する XML :: Liberal も参照できます。

2
singingfish

XML :: MyXML も試してみるべきだと思います。とても使いやすいです。

1
alexk

SHOULD NOTを使用するものを提供します: XML :: Parser

HTMLエンティティをUTF-8に相当するものに自動的に展開します。この動作を無効にするオプションは、すべてのエンティティの最も特徴的な&では機能しません。

さらに、そのXMLDeclパーサーは、<?xml ... ?>ブロックのstandalone属性を"standalone"="1"として解釈し、表示します。これは絶対に正しくありません。"standalone"="yes"である必要があります。

0
HoldOffHunger