写点什么

Ruby XML 综述:Hpricot 0.7、稳定的 Libxml-ruby 及 Nokogiri

  • 2009-03-27
  • 本文字数:799 字

    阅读完需:约 3 分钟

最近由于Nokogiri、Hpricotlibxml-ruby之间的竞争致使 Ruby 的XML支持得到了极大的改进。Nokogiri 发布于去年秋天,它基于本地的 libxml2 和 libxslt

由于 Nokogiri 使用了 libxml2,因此使用者可以获得如下好处:快速解析、i18n 支持、快速搜索、基于标准的 XPath 支持、命名空间支持及成熟的 HTML 修正算法。

Nokogiri 还具有诸如使用 XPath 和 CSS 选择符进行搜索的特性,同时它还支持 Ruby 1.9.1

一些基准的结果表明 Nokogiri 的性能是最棒的,之后 Hpricot 的维护者就花费了大量心力对该库进行改进并发布了 Hpricot 0.7

来享受这个新的、卓越的 Hpricot 吧。它快一些、支持 Ruby 1.9 而且还进行了不少修复… 我敢肯定你想知道为何面对 Nokogiri 和 LibXML 的强大竞争我还要更新 Hpricot 呢。记住 Hpricot 不依赖于其他任何东西,同时它比这两个库都要小。Hpricot 使用的是自己的基于 Ragel 的解析器,这样你就可以随意修改解析器了,相对来说其代码也更精简。

最重要的是过去 Hpricot 曾运行在 JRuby 上。现在我正忙于将 IronRuby 和 0.7 版的一些代码合并到 JRuby 上。这意味着无需调整你的代码就能运行在多种 Ruby 平台上,因此我这么做值了,你觉得呢?

最后 libxml-ruby 也发布了 1.0 版

* 支持 Ruby 1.9.1
* 对 OS X 10.5 和 MacPorts 开箱即用的支持
* 优雅、干净的 API 可以轻松完成一些简单的事情,同时还提供了你所需要的 libxml2 的所有功能

通过一个个的检查,最后我终于发现了一个隐蔽的问题: ```

int dictNames : Use dictionary names for the tree

复制代码
该设置控制的是 libxml2 是否使用 dictionary 来缓存之前解析过的字符串。字符串的缓存与否会对性能造成极大的影响,因此默认情况下缓存应该是开启的。目前 libxml-ruby 1.2.3+ 采取的都是这种方式。

借助于这个改变,现在 libxml-ruby 的性能与 Nokogiri 已不相上下。

查看英文原文: Ruby XML Roundup: Hpricot 0.7, Stable Libxml-ruby and Nokogiri

2009-03-27 11:251298
用户头像

发布了 88 篇内容, 共 273.5 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

企业数字化升级,为什么都需要IM即时通讯?

BeeWorks

算力如何升级?天翼云这么干!

天翼云开发者社区

云计算 云电脑

产品经理该如何确定优先级?

LigaAI

PM 敏捷实践 优先级

看天翼云如何为实体工业插上“数字翅膀”

天翼云开发者社区

云计算 安全 云电脑

2022年SaaS发展趋势——私有本地化部署

BeeWorks

什么是IP冲突以及如何解决?

郑州埃文科技

IP地址 IP冲突

智能运维 VS 传统运维|AIOps服务管理解决方案全面梳理

云智慧AIOps社区

运维 监控 AIOPS 自动化运维

Intel CET缓解措施深度研究

腾讯安全云鼎实验室

安全攻防 网络安全 安全研究

天翼云4.0首亮相!

天翼云开发者社区

云计算 云电脑

使命与愿景

Ian哥

项目管理 企业文化 使命愿景

得物客服一站式工作台卡顿优化之路

得物技术

前端 优化 sdk 卡顿 iframe

【前端干货】别再羡慕别人的Excel啦,教你点击按钮直接打开侧边栏!

葡萄城技术团队

前端 前端表格 前端按钮 在线协同

开源GitOps产业联盟会员行 | 走进秒云

MIAOYUN

云原生 gitops OGA联盟

【国产免费】ETL任务调度运维自动化平台 TASKCTL 作业互斥与强制依赖

敏捷调度TASKCTL

DevOps 分布式 运维 ETL 大数据运维

聚链成网,旺链科技联合发起跨链平台搭建计划

旺链科技

区块链 产业区块链 产业生态

Kubernetes 中数据包的生命周期 -- 第 3 部分

Se7en

分布式云时代,天翼云4.0如何护卫边缘安全?

天翼云开发者社区

安全 云电脑

工业互联网,走,上云去!

天翼云开发者社区

云计算 安全 云电脑

与Fiddler旗鼓相当的mock工具!

Liam

测试 Postman 自动化测试 自动化测试平台 测试自动化

IJCAI 2022 放榜,腾讯优图实验室三篇论文入选

极客天地

浅谈Flutter等跨平台移动开发框架

Speedoooo

flutter 小程序 前端框架 开发框架 小程序容器

Masa Blazor自定义组件封装

MASA技术团队

C# .net 微软 UI 组件库

HR系统本地化部署和SAAS,优秀企业会怎么选?

BeeWorks

焱融科技在高性能全闪文件存储系统设计的思考

焱融科技

云计算 分布式 云原生 高性能 文件存储

企评家企业投资价值评价系统,服务投资机构

企评家

企业评价 企评家 企业成长性评价 企业投资价值评价

数据传输POST心法分享,做前端的你还解决不了这个bug?

葡萄城技术团队

LigaAI 倾情推荐,这5部烧脑电影让你爽翻天

LigaAI

程序人生

设备资产管理软件解决方案

低代码小观

低代码 资产管理 CRM系统 企业设备管理 设备巡检管理系统

企业如何利用SaaS模式实现知识管理

小炮

SaaS

几行代码,网站图片访问速度 100ms 飙升到 20ms!

沉默王二

Ruby XML综述:Hpricot 0.7、稳定的Libxml-ruby及Nokogiri_Ruby_Werner Schuster_InfoQ精选文章