2

RHEL5 と Ubuntu 10.04 の 2 つのシステムがあり、それぞれ異なる動作を示します。私は perl の XML::Simple を使用して、いくつかの SaaS ソフトウェアへの呼び出しの応答を解析しています。応答は次のとおりです。

    <xml answer="{&quot;foo&quot;: &quot;bar&quot;}" />

ubuntu システムは {"foo": "bar"} を正しく返しますが、RHEL5 システムは引用符で囲まれたエンティティを属性タグに残し、これを変更するオプションが見つからないようです。

はい、XML::Simple のバージョンは少し異なります (私はそれを変更できません)。RHEL5: 2.14、Ubuntu: 2.18。動作が一貫するように、これを解決したいと思います。

4

1 に答える 1

3

によって返されたファイルから XML::SAX::PurePerl セクションを削除します。

perl -MFile::Basename -E'say dirname($ARGV[0])."/SAX/ParserDetails.ini"' "`perldoc -l XML::SAX`"

モジュールはひどいです!

  • 遅いです。そして、私はCRAZY遅いことを意味します。
  • エンコーディングを正しく処理できません。
  • そして明らかに、それはエンティティも正しく処理しません。

XML::Simple から最高のパフォーマンスが必要な場合は、必ず使用してください。

local $XML::Simple::PREFERRED_PARSER = 'XML::Parser';

警告: XML::Parser は名前空間を処理しません。

: XML::LibXML は、XML::Parser を使用した XML::Simple よりも 17 倍高速です。

于 2012-01-31T20:26:34.813 に答える