XML:: Простые оставляющие сущности в тексте атрибута
У меня есть две системы, одна RHEL5 и одна Ubuntu 10.04, и они демонстрируют различное поведение. Я использую Perl XML::Simple для анализа ответа на вызов некоторого программного обеспечения SaaS. Ответ:
<xml answer="{"foo": "bar"}" />
Система ubuntu правильно возвращает {"foo": "bar"}, но система RHEL5 оставляет цитируемые сущности в теге атрибута, и я не могу найти возможность изменить это.
Да, версии XML::Simple немного отличаются (и я не могу это изменить); RHEL5: 2,14, Ubuntu: 2,18. Я хотел бы решить это так, чтобы поведение было последовательным.
1 ответ
Удалите раздел 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 по-прежнему в 17 раз быстрее, чем XML::Simple с XML::Parser.