Ruby 的 XML 解析器

作者:编程家 分类: xml 时间:2025-10-23

使用 Ruby 的 XML 解析器可以方便地处理 XML 文件,从而提取出所需的数据或对 XML 进行修改。下面通过一个简单的案例来演示如何使用 Ruby 的 XML 解析器。

首先,我们需要安装 Nokogiri 这个 Ruby 的 XML 解析器。可以通过在终端执行以下命令来安装:

gem install nokogiri

安装完成后,我们就可以在 Ruby 代码中引入 Nokogiri,并开始解析 XML 文件了。

案例代码如下所示:

ruby

require 'nokogiri'

# 读取 XML 文件

xml_file = File.open('example.xml')

xml_doc = Nokogiri::XML(xml_file)

# 提取 XML 中的数据

xml_doc.xpath('//book').each do |book|

title = book.at_xpath('title').content

author = book.at_xpath('author').content

price = book.at_xpath('price').content

puts "书名:#{title}"

puts "作者:#{author}"

puts "价格:#{price}"

puts "--------"

end

# 修改 XML 中的数据

xml_doc.xpath('//book').each do |book|

title = book.at_xpath('title')

title.content = "新书名"

end

# 保存修改后的 XML 文件

File.open('updated.xml', 'w') do |file|

file.write(xml_doc.to_xml)

end

以上代码首先读取了一个名为 `example.xml` 的 XML 文件。然后,通过使用 `xpath` 方法,我们可以通过 XPath 表达式来提取出 XML 中的数据。在这个例子中,我们提取了每本书的标题、作者和价格,并打印输出。接下来,我们还演示了如何修改 XML 中的数据,将每本书的标题都修改为“新书名”。最后,我们将修改后的 XML 保存到一个名为 `updated.xml` 的文件中。

案例代码

ruby

require 'nokogiri'

xml_file = File.open('example.xml')

xml_doc = Nokogiri::XML(xml_file)

xml_doc.xpath('//book').each do |book|

title = book.at_xpath('title').content

author = book.at_xpath('author').content

price = book.at_xpath('price').content

puts "书名:#{title}"

puts "作者:#{author}"

puts "价格:#{price}"

puts "--------"

end

xml_doc.xpath('//book').each do |book|

title = book.at_xpath('title')

title.content = "新书名"

end

File.open('updated.xml', 'w') do |file|

file.write(xml_doc.to_xml)

end

通过以上案例,我们可以看到使用 Ruby 的 XML 解析器 Nokogiri,我们可以轻松地读取和提取 XML 文件中的数据,并且还可以对 XML 进行修改。这为我们处理 XML 数据提供了强大的工具和便利。无论是提取数据还是修改数据,Nokogiri 都是一个非常实用的工具。