大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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

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

关注

评论

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

软件产品开发中常见的10个问题及处理方法

伤感汤姆布利柏

爱橙科技基于 MaxCompute 智能物化视图最佳实践

阿里云大数据AI技术

大数据 阿里云 SaaS MaxCompute 物化视图

AI低代码MES:制造业从“制造”到“智造”

万界星空科技

AI 低代码开发 低代码平台 mes 低代码云MES

Web3项目的安全性

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

Web3项目的分类及特点

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

当AI遇上低代码:程序员正在咖啡馆里泡手冲?

伤感汤姆布利柏

观测云产品更新 | 场景、日志、可用性监测等优化

观测云

产品迭代

项目过程中会出现哪些问题?

秃头小帅oi

DeepSeek 3FS 架构分析和思考(下篇)

火山引擎开发者社区

5000万考生救星!百度网盘和文库首发一站式视频AI笔记

极客天地

Web3项目的上线流程

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

软件架构,关于问题起源和应对

伤感汤姆布利柏

Hologres诊断与优化快速入门

阿里云大数据AI技术

数据库 sql 大数据 阿里云 hologres

智能制造:自动化焊装线的数字化设计

积木链小链

数字化 制造业 智能制造

国产服务器操作系统CTyunOS,技能值拉满!

天翼云开发者社区

云计算 服务器操作系统

AI应用如何从 Chat 进化为 Agent?开源项目源码深度揭秘|得物技术

得物技术

agent 大模型应用

DApp开发中的三大激励引擎:静态奖、动态奖与推荐奖的协同设计 ——从经济模型到行为心理学的深度解析

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

养老机构平台运营与开发:数字化时代的智慧养老解决方案

网站,小程序,APP开发定制

HarmonyOS NEXT 中级开发环境搭建与实用工具类 AI 问答 APP 开发

yimapingchuan

HarmonyOS NEXT

DeepSeek Smallpond 在火山引擎 AI 数据湖的探索实践

火山引擎开发者社区

币安再度封禁违规做市商,Crypto 行业还有多少「蛀虫」

TechubNews

比特币

行业分享丨如何实现快速仿真和创新设计,颠覆式加速产品研发?

Altair RapidMiner

AI 数字化转型 HPC 仿真 仿真驱动设计

SonarQube Server 2025 Release 2 发布 - 代码质量、安全与静态分析工具

sysin

SonarQube

必看!SpringAI轻松构建MCP Client-Server架构

王磊

模型的泛化性能度量:方法、比较与实现

秃头小帅oi

一文读懂2024!2025往“这”瞧 |《2024 IT行业项目管理调查报告》发布!

禅道项目管理

项目管理 AI IT 调查报告 科技

如何开发RWA DApp?一文搞定——从资产确权到跨链流通的完整技术指南

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

数字先锋 | 打造专属AI大脑,天翼云助力重庆理工大学开启智慧校园新篇!

天翼云开发者社区

人工智能 智慧校园

测试框架设计的艺术

FunTester

火山引擎智能数据洞察 ChatBI 适配 DeepSeek-R1 及 DeepSeek-V3

火山引擎开发者社区

华为吴辉:跨越数智鸿沟,共创AI新时代

新消费日报

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