XML :: Простые оставляющие сущности в тексте атрибута - PullRequest
2 голосов
/ 31 января 2012

У меня есть две системы, одна RHEL5 и одна Ubuntu 10.04, и они ведут себя по-разному.Я использую Perl XML :: Simple для анализа ответа на вызов некоторого программного обеспечения SaaS.Ответ:

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

Система ubuntu правильно возвращает {"foo": "bar"}, но система RHEL5 оставляет указанные в сущности объекты в теге атрибута, и я не могу найти вариант дляизмените это.

Да, версии XML :: Simple немного отличаются (и я не могу это изменить);RHEL5: 2,14, Ubuntu: 2,18.Я хотел бы решить эту проблему, чтобы поведение было последовательным.

1 Ответ

3 голосов
/ 01 февраля 2012

Удалить секцию XML :: SAX :: PurePerl из файла, возвращенного

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

Модуль ужасен!

  • Это медленно.И я имею в виду CRAZY slow.
  • Он не может правильно обрабатывать кодировки.
  • И, очевидно, он также не обрабатывает сущности правильно.

Если вы хотите добиться максимальной производительности от XML :: Simple, обязательно используйте

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

Предупреждение : XML :: Parser не обрабатывает пространства имен.

Примечание : XML :: LibXML по-прежнему в 17 раз быстрее, чем XML :: Simple с XML :: Parser.

...