Ruby程序中创建和解析XML文件的方法例子解析

在这里插入图片描述

代码示例:

在Ruby中,可以使用Nokogiri库来创建和解析XML文件。以下是一个详细的示例,展示如何使用Nokogiri来创建和解析XML文件。

创建XML文件

require 'nokogiri'

# 创建一个新的XML文档
builder = Nokogiri::XML::Builder.new do |xml|
  xml.root {
    xml.books {
      xml.book {
        xml.title "The Great Gatsby"
        xml.author "F. Scott Fitzgerald"
        xml.year "1925"
      }
      xml.book {
        xml.title "To Kill a Mockingbird"
        xml.author "Harper Lee"
        xml.year "1960"
      }
    }
  }
end

# 将XML内容写入文件
File.open('books.xml', 'w') do |file|
  file.write(builder.to_xml)
end

解析XML文件

require 'nokogiri'

# 读取XML文件
file = File.read('books.xml')
doc = Nokogiri::XML(file)

# 解析XML文件
doc.root.each_child do |child|
  if child.name == 'books'
    child.each_child do |book|
      if book.name == 'book'
        title = book.at_xpath('title').content
        author = book.at_xpath('author').content
        year = book.at_xpath('year').content
        puts "Title: #{title}, Author: #{author}, Year: #{year}"
      end
    end
  end
end

示例输出

假设books.xml文件内容如下:

<?xml version="1.0"?>
<root>
  <books>
    <book>
      <title>The Great Gatsby</title>
      <author>F. Scott Fitzgerald</author>
      <year>1925</year>
    </book>
    <book>
      <title>To Kill a Mockingbird</title>
      <author>Harper Lee</author>
      <year>1960</year>
    </book>
  </books>
</root>

运行解析代码后,输出如下:

Title: The Great Gatsby, Author: F. Scott Fitzgerald, Year: 1925
Title: To Kill a Mockingbird, Author: Harper Lee, Year: 1960

关键点说明

  1. 创建XML文件

    • 使用Nokogiri::XML::Builder来构建XML文档。
    • 使用嵌套的代码块来定义XML结构。
    • 使用to_xml方法将构建的XML内容转换为字符串,并写入文件。
  2. 解析XML文件

    • 使用Nokogiri::XML读取XML文件。
    • 使用at_xpath方法获取特定节点的内容。
    • 遍历XML文档的节点,提取所需信息。

后续操作建议

  1. 安装Nokogiri库:如果尚未安装Nokogiri,可以使用以下命令安装:
    gem install nokogiri
    
  2. 扩展功能:可以根据需要扩展XML结构和解析逻辑,例如添加更多书籍信息或处理更复杂的XML结构。

请根据您的具体需求调整代码。
更多技术文章见公众号: 大城市小农民

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔丹搞IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值