私の Perl の状況では、どの XML パーサーが最適なのか疑問に思っています。私はたくさんの読書をして、 と を試しましXML::LibXML
たXML::SAX
。1 つ目はメモリを使いすぎ、2 つ目はそれほど速くないように見えました (純粋な perl パーサーをオフにした後でも)。
私のニーズはかなり具体的です。ライブラリ経由で最大 50MB の大きな応答を受信していNet::SSH
ます。メモリ内のデータ量を最小限に抑えるために、このデータを受け取ったときに XML ライブラリに渡したいと考えています。次に、特定のタグでデータを探して、それを使って何でもする必要があります。場合によっては、一連の値を合計したり、値を抽出してファイルなどに書き込むだけです。そのため、逐次的に動作し、すばやく動作し、最小限のメモリしか使用しない XML パーサーが必要です。$myparser->sendData($mynewData)
私が取得するデータは最大 1024 バイトのチャンクであるため、何かを実行して、新しいタグが開いたり閉じたりしたときに関数を呼び出すことができるようにしたいと考えてXML::SAX
います。
XPath や XSLT は必ずしも必要ではありません。