代码示例:
使用 Nokogiri 操作 XML 数据的详细教程
- 安装 Nokogiri
首先,确保你已经安装了 Nokogiri。可以使用以下命令进行安装:
sh复制
gem install nokogiri
对于某些操作系统,可能需要先安装一些依赖库。例如,在 Ubuntu 上,需要安装 libxml2 和 libxslt:
sh复制
apt-get install libxml2 libxslt - 读取 XML 文件
Nokogiri 提供了多种方式来读取 XML 文件,包括从字符串、文件和网络读取。
从字符串读取
ruby复制
xml = “Value”
doc = Nokogiri::XML(xml)
从文件读取
ruby复制
f = File.open(“example.xml”)
doc = Nokogiri::XML(f)
f.close
从网络读取
ruby复制
require ‘open-uri’
doc = Nokogiri::XML(open(“http://example.com/example.xml”)) - 解析 XML 文档
Nokogiri 提供了多种方法来解析 XML 文档,包括使用 XPath 和 CSS 选择器。
使用 XPath
ruby复制
选择所有 元素
items = doc.xpath(“//Items/Item”)
选择第一个 元素
first_item = doc.at_xpath(“//Items/Item”)
获取第一个 元素的 filename 属性
filename = first_item[‘filename’]
获取第一个 元素的 文本
title = first_item.at_xpath(“Title”).text
使用 CSS 选择器
ruby复制
选择所有 元素
items = doc.css(“Items Item”)
选择第一个 元素
first_item = doc.at_css(“Items Item”)
获取第一个 元素的 filename 属性
filename = first_item[‘filename’]
获取第一个 元素的 文本
title = first_item.at_css(“Title”).text
4. 修改 XML 文档
Nokogiri 允许你修改 XML 文档中的节点内容。
修改节点内容
ruby复制
修改第一个 元素的 文本
first_item.at_xpath(“Title”).content = “New Title”
修改第一个 元素的 filename 属性
first_item[‘filename’] = “new_filename.jpg”
添加新节点
ruby复制
创建一个新的 元素
new_item = Nokogiri::XML::Node.new(“Item”, doc)
new_item[‘filename’] = “new_item.jpg”
创建一个新的 元素
new_title = Nokogiri::XML::Node.new(“Title”, doc)
new_title.content = “New Item Title”
将 元素添加到新的 元素中
new_item << new_title
将新的 元素添加到 元素中
doc.at_xpath(“//Items”) << new_item
5. 保存修改后的 XML 文件
ruby复制
File.open(“modified_example.xml”, “w”) do |f|
f.puts doc.to_xml
end
6. 处理 CDATA 节点
Nokogiri 也支持处理 CDATA 节点。
创建 CDATA 节点
ruby复制
创建一个新的 CDATA 节点
cdata = Nokogiri::XML::CDATA.new(doc, “This is a CDATA section”)
将 CDATA 节点添加到 元素中
first_item.at_xpath(“Caption”).content = cdata
替换 CDATA 节点
ruby复制
替换现有的 CDATA 节点
first_item.at_xpath(“Caption”).child.replace(cdata)
总结
Nokogiri 是一个功能强大的 Ruby 库,用于解析和操作 XML 和 HTML 文档。通过上述步骤,你可以轻松地读取、解析、修改和保存 XML 文件。希望这些示例对你有所帮助。
喜欢本文,请点赞、收藏和关注!
如能打赏、那更好了!
**如有朋友需要杭州社保挂靠的,可以在评论区或联系博主!
本人有朋友公司需要有计算机专业人员的社保缴纳。因为是新公司
**