2012-01-31 5 views
2

RHEL5とUbuntu 10.04の2つのシステムがあり、動作が異なります。私はいくつかのSaaSソフトウェアへの呼び出しの応答を解析するためにperlのXML :: Simpleを使用しています。応答は次のとおりです。XML ::属性テキスト内に単純なエンティティを残す

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

Ubuntuシステムが正しく{「foo」という:「バー」}返しますが、RHEL5システムは属性タグに引用されたエンティティを残して、私はこれを変更するためのオプションを見つけることができないよう。

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

+0

XML-Simpleディストリビューションの最新バージョンを追加インストールすることはできないと誤解されています。 [スタックオーバーフローPerl FAQ](http://stackoverflow.com/questions/tagged/perl?sort=faq):http://stackoverflow.com/questions/102850/how-can-i-install-cpan- modules-locally-without-root-access-dynaloader-pm-line-2 http://stackoverflow.com/questions/251705/how-can-i-use-a-new-perl-module-without-install-permissions http://stackoverflow.com/questions/540640/how-can-i-install-a-cpan-module-into-a-local-directory http://stackoverflow.com/questions/2980297/how-can-i -use-cpan-as-a-non – daxim

+0

実際、XML :: Simpleは問題ではありませんでした。バグだったのはXML :: SAX :: PurePerlでした。 – robertlandrum

+1

@ user1180854:それは、リンクされた質問があなたのためにそれを解決したことを意味すると思いますか?あなた自身の質問への回答を投稿してください。 – derobert

答えて

3

は、モジュールがひどいです

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

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

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

あなたがXMLから最高のパフォーマンス::シンプルにしたい場合は、警告

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

を使用してください:XML :: Parserのが名前空間を処理しません。

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

関連する問題