Ruby怎么解析和生成XML_Ruby语言解析与生成XML常用库介绍

畫卷琴夢
发布: 2025-10-27 12:24:02
原创
836人浏览过
Nokogiri功能全面,支持解析与生成,适合大多数项目;Builder专精XML生成,语法清晰;REXML为标准库,轻量易用;Ox性能优异,适用于高频或大文件处理。

ruby怎么解析和生成xml_ruby语言解析与生成xml常用库介绍

Ruby处理XML非常灵活,得益于其丰富的第三方库和简洁的语法。无论是解析已有XML文件,还是动态生成XML内容,Ruby都有多个成熟、易用的工具可供选择。下面介绍几种常用的Ruby库及其使用场景。

1. Nokogiri:功能最强大的XML处理库

Nokogiri 是 Ruby 中最流行的 XML(和 HTML)解析与生成库,支持 XPath 和 CSS 选择器,性能高,功能全面。

安装方式:

gem install nokogiri

解析 XML 示例:

假设有如下 XML 内容:

<bookstore><br>
    <book id="1"><br>
      <title>Ruby 入门</title><br>
      <author>张三</author><br>
    </book><br>
  </bookstore>
登录后复制

使用 Nokogiri 解析:

require 'nokogiri'
xml = File.read('bookstore.xml')
doc = Nokogiri::XML(xml)
doc.xpath('//book').each do |book|
  puts book.at_css('title').content
  puts book['id']
end

生成 XML 示例:

builder = Nokogiri::XML::Builder.new do
  bookstore {
    book(id: 1) {
      title "Ruby 入门"
      author "张三"
    }
  }
end
puts builder.to_xml

Nokogiri 既能解析也能构建,适合大多数实际项目。

2. Builder:专注于生成 XML

Builder 是一个轻量级库,专用于生成结构化的 XML 或 XHTML,语法清晰,嵌套自然。

安装方式:

gem install builder

uBrand Logo生成器
uBrand Logo生成器

uBrand Logo生成器是一款强大的AI智能LOGO设计工具。

uBrand Logo生成器57
查看详情 uBrand Logo生成器
生成 XML 示例:

require 'builder/xmlMarkup'
xml = Builder::XmlMarkup.new(indent: 2)
output = xml.bookstore {
  xml.book(id: 1) {
    xml.title "Ruby 入门"
    xml.author "张三"
  }
}
puts output

Builder 不擅长解析 XML,但生成时代码可读性很高,适合模板化输出。

3. REXML:标准库,无需安装

Ruby 自带 REXML 库,无需额外安装,适合简单脚本或轻量需求。

解析示例:

require 'rexml/document'
include REXML
file = File.new('bookstore.xml')
doc = Document.new(file)
doc.elements.each('bookstore/book') do |book|
  puts book.elements['title'].text
end

生成示例:

doc = Document.new
root = doc.add_element 'bookstore'
book = root.add_element 'book', {'id' =&gt; '1'}
book.add_element('title').text = 'Ruby 入门'
File.write('output.xml', doc.to_s)

REXML 使用简单,但性能不如 Nokogiri,不推荐用于大型或高频 XML 处理。

4. Ox:高性能 XML 解析器

Ox 是一个用 C 编写的高速 XML 解析和生库,适合对性能要求高的场景。

安装方式:

gem install ox

解析示例:

require 'ox'
doc = Ox.parse(File.read('bookstore.xml'), mode: :hash)
puts doc['bookstore']['book']['title']

Ox 支持对象映射和流式解析,特别适合处理大文件或 API 接口数据。

基本上就这些。Nokogiri 是多数情况下的首选,Builder 适合专注生成,REXML 适合快速脚本,Ox 用于性能敏感场景。根据项目需求选择合适工具即可。

以上就是Ruby怎么解析和生成XML_Ruby语言解析与生成XML常用库介绍的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号