Nokogiri 是 Ruby 中最常用、最可靠的 XML 和 HTML 解析库,基于 libxml2,支持 XPath 与 CSS 选择器,性能好、兼容性强;需先执行 gem install nokogiri 并 require 'nokogiri',再通过字符串或文件加载解析。
Nokogiri 是 Ruby 中最常用、最可靠的 XML(和 HTML)解析库,用法简洁但功能强大。它底层基于 libxml2,性能好、兼容性强,支持 XPath 和 CSS 选择器,适合处理各种结构化文档。
在终端中运行安装命令:
gem install nokogiri
在 Ruby 脚本中引入:
require 'nokogiri'
解析 XML 字符串:
xml_string =
XML
doc = Nokogiri::XML(xml_string)
从文件加载:
doc = Nokogiri::XML(File.open('data.xml'))
注意:Nokogiri 默认会报告解析警告。如需静默(忽略格式警告),加选项:
doc = Nokogiri::XML(xml_string) { |config| config.strict.nonet }
推荐优先使用 XPath,表达力强;CSS 语法更直观,适合简单场景。
doc.xpath('//name') 或 doc.css('name')
doc.xpa
th('//user[@id="1"]') 或 doc.css('user[id="1"]')
doc.at_xpath('//name').text → "Alice"
doc.at_xpath('//user').attribute('id').value → "1"
Nokogiri 支持动态构建和修改文档:
user = doc.at_xpath('//user'); user.add_child('alice@example.com ')
doc.at_xpath('//name').content = 'Bob'
doc.to_xml(保留缩进加 to_xml(indent: 2))File.write('output.xml', doc.to_xml)
基本上就这些。掌握加载、查询、取值、修改四步,就能覆盖绝大多数 XML 处理需求。Nokogiri 的 API 设计很自然,多试几次 XPath 就上手了。
# css
# html
# ruby
# require
# xml
# 字符串
# 选择器
# 加载
# 最常用
# 最可靠
# 文档
# 第一个
# 就能
# 几次
# 性能好
# 如需
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
php本地部署后数据库连接报错_1045accessdenied错误解决方法详解【汇总】
Win10怎么关闭自动更新错误弹窗_Win10策略屏蔽失败提示减少干扰【防护】
Win10怎么卸载爱奇艺_Win10彻底卸载爱奇艺方法【步骤】
Windows 11无法安全删除U盘提示设备正在使用中怎么办_Windows 11找出占用设备进程
php8.4匿名类怎么用_php8.4匿名类创建与使用场景【介绍】
如何使用Golang实现Web表单数据绑定_自动映射字段到结构体
php打包exe怎么传递参数_命令行参数接收方法【解答】
Mac如何使用听写功能_Mac语音输入打字【效率技巧】
php怎么下载安装后无法解析php文件_服务器配置检查【解答】
Win10如何备份驱动程序_Win10驱动备份步骤【攻略】
Win11如何更改用户账户文件夹名称 Win11修改C:Users用户名【终极教程】
Win11怎么用设置清理回收站_Win11设置清理回收站技巧【步骤】
Python多进程教程_multiprocessing模块实战
php增删改查需要哪些扩展_开启mysqli或pdo扩展方法【说明】
如何在同包不同文件中正确引用 Go 结构体
如何在 Go 中正确反序列化多个同级 XML 元素(而非单个根节点)
Windows音频驱动无声音原因解析_声卡驱动错误修复步骤
Python迭代器生成器进阶教程_节省内存与懒加载实战
c++如何利用doxygen生成开发文档_c++ 代码注释规范与HTML文档导出【案例】
ACF 教程:正确更新嵌套在多层 Group 字段内的子字段
Win11声音太小怎么办_Windows 11开启响度均衡增强音量【技巧】
Win11怎么设置闹钟_Windows 11时钟应用闹钟设置指南【详解】
c++怎么使用std::tuple存储多元组数据_c++ 11获取元素与解包操作【技巧】
如何在Golang中捕获结构体方法错误_Golang方法返回error处理实践
如何高效识别并拦截拼接式恶意域名 spam
如何使用Golang管理跨项目依赖_Golang多模块项目依赖实践
Python网络超时处理_健壮性设计说明【指导】
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
Win11怎么设置默认邮件应用_Windows11应用关联Mail设置
Win11怎么更改系统语言_Win11中文语言包下载与安装【指南】
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
如何使用正则表达式精确匹配最多含一个换行符的 start-end 区段
Win11怎么设置快速访问主页_Windows11资源管理器文件夹选项
Mac怎么安装软件_Mac安装dmg与pkg文件的区别【指南】
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
Windows10如何更改系统字体大小_Win10辅助功能文本缩放设置
如何在 PHP 中按相同键合并两个关联数组为二维数组
如何在 Go 中判断变量是否为函数类型
Win11怎么设置应用分屏_Windows11贴靠布局Snap Layouts
C++如何编写函数模板?(泛型编程入门)
Win11无法拖拽文件到任务栏怎么办_Win11开启拖放功能修复【方法】
Python函数接口文档化_自动化说明【指导】
Go语言中slice追加操作的底层共享机制详解
Windows蓝屏错误0x00000023怎么修复_FAT文件系统错误处理
Win11怎么关闭触摸屏_禁用Win11笔记本触摸屏功能设置【教程】
如何关闭Win10自动更新更新_Win10系统自动更新双重关闭技巧
如何在Golang中处理模块包路径变化_Golang包重命名与导入方法
Mac怎么开启“任何来源”_Mac安装未签名应用的设置方法【解决】
Win11怎么看电池循环次数_Win11笔记本电池寿命检测【命令】
Windows10电脑怎么设置自动连接WiFi_Win10无线网络属性勾选
2025-12-13
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。