如何使用 Nokogiri 遍历嵌套的 xml 元素
How to iterate through nested xml elements using Nokogiri
我有一个 xml 文件,其中包含以下嵌套元素:
<SourceDetails>
<Origin>Origin</Origin>
<Identifier>Identifier</Identifier>
<Version>0</Version>
</SourceDetails>
我已经使用函数 at_xpath 从存储在变量中的 xml 文件中提取了上述 xml 片段。是否可以遍历此变量并使用 Ruby Nokogiri 存储嵌套 xml 元素的内容?如果是这样,这是怎么做到的?
我想将 SourceDetails 中的每个元素附加到另一个变量,后跟一个正斜杠。对于上面的例子,我想获取格式为Origin/Identifier/0
的内容
这是一个快速而肮脏的。由于我不确定您如何存储包含 XML 的变量,为了确保我得到的是实际的 XML 数据,我实际上从文件中读取了 XML 数据,这给了我们:
require 'nokogiri'
xml = File.open('source_of_xml.xml') { |f| Nokogiri::XML(f) }
values = []
xml.xpath('SourceDetails').each do |elem|
values << elem.text.gsub(/\n/, "").split
end
p values.first.join("/") #assing this to variable you want.
# => "Origin/Identifier/0"
这对您有帮助或指导吗?
有一个简单的方法
require "nokogiri"
xmlFileData = Nokogiri::XML(File.open('./xmlFile.xml'))
dataArr = xmlFileData.at_xpath("//SourceDetails").text.split("\n")
dataArr.delete_at(0)
puts dataArr.join("/").gsub(/(\s+)/, '')
我有一个 xml 文件,其中包含以下嵌套元素:
<SourceDetails>
<Origin>Origin</Origin>
<Identifier>Identifier</Identifier>
<Version>0</Version>
</SourceDetails>
我已经使用函数 at_xpath 从存储在变量中的 xml 文件中提取了上述 xml 片段。是否可以遍历此变量并使用 Ruby Nokogiri 存储嵌套 xml 元素的内容?如果是这样,这是怎么做到的?
我想将 SourceDetails 中的每个元素附加到另一个变量,后跟一个正斜杠。对于上面的例子,我想获取格式为Origin/Identifier/0
的内容这是一个快速而肮脏的。由于我不确定您如何存储包含 XML 的变量,为了确保我得到的是实际的 XML 数据,我实际上从文件中读取了 XML 数据,这给了我们:
require 'nokogiri'
xml = File.open('source_of_xml.xml') { |f| Nokogiri::XML(f) }
values = []
xml.xpath('SourceDetails').each do |elem|
values << elem.text.gsub(/\n/, "").split
end
p values.first.join("/") #assing this to variable you want.
# => "Origin/Identifier/0"
这对您有帮助或指导吗?
有一个简单的方法
require "nokogiri"
xmlFileData = Nokogiri::XML(File.open('./xmlFile.xml'))
dataArr = xmlFileData.at_xpath("//SourceDetails").text.split("\n")
dataArr.delete_at(0)
puts dataArr.join("/").gsub(/(\s+)/, '')