我刚开始使用Nokogiri并有一个问题,希望你们能帮助我:
- 我需要解析一组 XML 文件(比如说 5 个文件)。
- 使用 XPATH 查找具有特定值的元素,例如 City = "London"。
- 创建一个新的 XML 文件,其中包含步骤 2 中先前 XPATH 查询的结果
以下对您的情况做出了一些可能不正确的假设(即“城市”是一个节点而不是一个属性,并且所有文件都在一个目录中),但是您应该能够对其进行调整以适应您的需求。
require 'rubygems'
require 'nokogiri'
Dir.glob("*.xml").each do |filename|
input = Nokogiri::XML(File.new(filename))
output = Nokogiri::XML::Document.new
output.root = Nokogiri::XML::Node.new("output", output)
input.root.xpath("//*[city='London']").each {|n| output.root << n}
File.open("out_" + filename, 'w') {|f| f.write(output.to_xml) }
end