写点什么

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

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

关注

评论

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

OpenAI 发布新一代 STT/TTS 模型,10 行代码构建 Voice Agent;声网推出对话式 AI 开发套件丨日报

声网

Windows 11 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 3 月更新)

sysin

windows

面试官:谈谈你对Reactor模型的理解?

王磊

用HAI+AI助手,不懂代码也能自己做页游

穿过生命散发芬芳

HAI应用服务器 腾讯云 AI 代码助手

如何选择合适的日志管理系统?功能对比与应用场景解析

运维有小邓

日志管理系统

Windows Server 2025 中文版、英文版下载 (2025 年 3 月更新)

sysin

windows

YashanDB会话管理

YashanDB

数据库 yashandb

Windows 10 version 22H2 中文版、英文版下载 (2025 年 3 月更新)

sysin

windows

代码采纳率从 22% 到 33%,通义灵码辅助数据库智能编码实践

阿里云云效

阿里云 云原生 通义灵码

Kali Linux 2025.1a 发布 - 领先的渗透测试发行版

sysin

kali Linux

代码采纳率从 22% 到 33%,通义灵码辅助数据库智能编码实践

阿里巴巴云原生

阿里云 云原生 通义灵码

如何选择最适合自己的远控软件?4款产品对比评测

科技热闻

聚焦英伟达GTC 2025:ScaleFlux携手合作伙伴共绘智能存储生态蓝图

ScaleFlux

英伟达 数据存储 企业存储

Windows 11 23H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 3 月更新)

sysin

windows

Windows Server 2022 中文版、英文版下载 (2025 年 3 月更新)

sysin

windows

数据、信息、知识、智慧:AI时代我们该如何思考?

不在线第一只蜗牛

人工智能 数据

打造用户认证系统,构筑信息安全防线

HarmonyOS SDK

harmoyos

YashanDB计划管理

YashanDB

数据库 yashandb

人形机器人发展路线之争:“大脑”优先,还是“运动”优先?

机器人头条

科技 大模型 人形机器人 具身智能

连接与效率的艺术:解码ToB 移动端协同产品的用户体验设计奥秘

inBuilder低代码平台

UX 移动端 体验设计

干货分享 | 一看就懂的电脑配置代理IP全流程

kookeey代理严选

代理IP设置 TikTok 账号防关联 独享代理 亚麻逊

2025数字中国创新大赛·智能科技赛道正式启动

极客天地

Netty源码—Reactor线程模型一

不在线第一只蜗牛

Java 算法 前端

用户说 | 零基础用通义灵码 AI 程序员开发个人笔记网站

阿里云云效

阿里云 云原生 通义灵码

YashanDB yex_server沙箱进程管理

YashanDB

数据库 yashandb

DeepSeek&东信营赛洞见:“深度思考”模式重构AI营销新范式

东信营销科技

用户说 | 零基础用通义灵码 AI 程序员开发个人笔记网站

阿里巴巴云原生

阿里云 云原生 通义灵码

「战友」变「对手」:Pump.fun 与 Raydium 正式打响争夺 Solana Memecoin 市场的战役

TechubNews

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