写点什么

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

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

关注

评论

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

快速玩转 Llama2!阿里云机器学习 PAI 推出最佳实践(一)——低代码 Lora 微调及部署

阿里云大数据AI技术

压力测试核心性能指标及行业标准

优测云服务平台

压力测试 稳定性测试 并发测试 系统优化 #性能测试

网约车服务端线上流量巡检与测试验收技术

滴滴技术

海量数据×桂林银行 | 满足金融用户稳健周密需求,做好国内数据库演进的实践担当#openGauss

daydayup

Nautilus Chain:主权模块化区块链的早期实践

BlockChain先知

软件测试/测试开发丨Python 继承 学习笔记

测试人

Python 程序员 软件测试 自动化测试

iOS MachineLearning 系列(22)——将其他三方模型转换成CoreML模型

珲少

非托管流动性协议Hover:或将引领Cosmos新一轮DeFi Summer

股市老人

滴滴是如何落地eBPF技术的?

滴滴技术

云原生 eBPF&Linux

钛媒体专访|对话澜舟科技周明:大模型炒作过热,创业公司要选好赛道

澜舟孟子开源社区

出海新模式:从蔚赫信息收购德国博世LABCAR HiL 技术看如何通过海外IP并购实现全球化布局

千流出海

千流出海

架构经典设计思想之池化

三叶草

Last Week in Milvus

Zilliz

非结构化数据 Milvus Zilliz 向量数据库

2023-07-25:你驾驶出租车行驶在一条有 n 个地点的路上 这 n 个地点从近到远编号为 1 到 n ,你想要从 1 开到 n 通过接乘客订单盈利。你只能沿着编号递增的方向前进,不能改变方向 乘

福大大架构师每日一题

福大大架构师每日一题

大文件传输中的加密与安全措施

镭速

大文件传输

纯实战!教你2小时学会10个组件“取代”传统Java开发

飞算JavaAI开发助手

WAIC2023精彩回顾|澜舟科技首次亮相WAIC,孟子大模型专注垂直领域专业赛道

澜舟孟子开源社区

Nautilus Chain:主权模块化区块链的早期实践

股市老人

Hello,Vector DB|可能是最易上手的 Faiss 教程

Zilliz

Faiss Milvus Zilliz 向量数据库 zillizcloud

「大模型之家」对话澜舟科技创始人兼CEO周明:马上采取行动,拥抱大模型

澜舟孟子开源社区

海量数据×桂林银行 | 满足金融用户稳健周密需求,做好国内数据库演进的实践担当 openGauss

daydayup

openGauss 开源社区再次入选“科创中国”开源创新榜

daydayup

6大产品20项亮点,支付宝小程序云全揭秘

TRaaS

小程序 支付宝小程序

AIGC,你看我还有机会吗?| 融云前沿

融云 RongCloud

人工智能 产品 AI 互联网 AIGG

澜舟科技荣膺世界经济论坛评选的2023年度技术先锋初创企业

澜舟孟子开源社区

澜舟科技同360牵头的多家产业链龙头企业,共同发起成立GPT产业联盟

澜舟孟子开源社区

UE像素流送是什么?像素流推流原理介绍

3DCAT实时渲染

云流化 实时渲染云

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