ajax - XML::Simple 在属性文本中保留实体

标签 ajax perl ubuntu rhel5 xml-simple

我有两个系统,一个是 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。我很想解决这个问题,以便行为保持一致。

最佳答案

从返回的文件中删除 XML::SAX::PurePerl 部分

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

这个模块太糟糕了!

  • 速度很慢。我的意思是慢得疯狂。
  • 它不能正确处理编码。
  • 显然,它也无法正确处理实体。

如果您希望 XML::Simple 获得最佳性能,请务必使用

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

警告:XML::Parser 不处理命名空间。

注意:XML::LibXML 仍然比使用 XML::Parser 的 XML::Simple 快 17 倍。

关于ajax - XML::Simple 在属性文本中保留实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9083722/

相关文章:

ubuntu - haxe 找不到 haxelib 安装的 csv 库

javascript - 如何合成和压缩 Javascripts (.net ajax) 以获得最佳性能

perl - 在Excel电子表格中打印文本

c - 尽管安装了 unixODBC,但缺少 sql.h 头文件

sql - 如何仅在发现重复或以其他方式插入数据时更新记录?

perl - 使用awk/perl过滤tomcat日志

ubuntu - Couchbase社区版6.0无法创建索引?

javascript - 将 select 标签的选项的 json 数据存储在变量中

ajax - 使用 XMLHttpRequest header 进行 Nodejs Ajax 调用

javascript - 脚本管理器在 ASP.NET 中不起作用