写点什么

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:251191
用户头像

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

关注

评论

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

架构师第一周笔记

Geek_Gu

第1周 作业

wgl

UML

Java新特性:数据类型可以扔掉了?

王磊

Java 新特性 Java新特性 var 局部类型推导

week1 架构方法总结

zero2onemore

我搭建了一套企业级私有Git服务,抗住了每天上万次攻击!

冰河

git 代码管理 代码仓库 私有服务 远程协作

# 架构师训练营Week1总结

lggl

极客大学架构师训练营 UML

【架构师训练营1期】第一周作业

诺乐

oeasy 教您玩转linux 010303文件管理器 nautilus

o

程序员为什么热衷于造轮子,升职加薪吗?

小傅哥

Java 小傅哥 代码质量 编程开发 编程经验

SpringBoot系列(1)-初识SpringBoot

引花眠

学习 springboot

超全面分布式缓存高可用方案:哨兵机制

架构精进之路

redis哨兵模式

架构师训练营学习笔记

Erwa

ARTS Week17

时之虫

架构师第一周

Geek_Gu

极客大学架构师训练营

第1周 作业

Pyr0man1ac

课程大作业

小胖子

ARTS打卡 第17周

引花眠

微服务 ARTS 打卡计划

信任环:口碑传播的关键环节

boshi

用户增长 运营创新

第一周命题作业

王建军

架构师训练营第一周总结

万里

极客大学架构师训练营

week-1-part2 学习总结

陈龙

第一周:学习总结

王建军

架构师训练营第一周课程笔记及心得

Airs

架构师训练营第 1 期第一周总结

Geek_a01290

极客大学架构师训练营

极客时间架构 1 期:第 1 周架构方法 - 命题作业

Null

架构师训练营第 1 期第一次作业

Geek_a01290

极客大学架构师训练营

早知道这 8 个锦囊,我的程序人生一定更精彩

沉默王二

程序员

git 常用操作及 git 工作流介绍

hepingfly

git git分支操作 git工作流

第二周 - 框架设计

Arthur云剑

深入理解JVM垃圾回收算法 - 标记清理算法

Skye

GC算法 标记清理 位图标记 懒惰标记

腾讯PCG数据中台专场介绍&招聘报名

Geek_c46970

数据中台 腾讯 招聘

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