尝试使用 nokogiri 和 xpath 导航 XML 文件
Trying to navigate XML file using nokogiri and xpath
我有一个 xml 文件,可从以下位置下载:https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
我想做的是浏览货币,这样我就可以将它们保存在我的数据库中。
我有:
open('app/assets/forex/eurofxref-daily.xml', 'wb') do |file|
file << open('https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml').read
end
then
doc = File.open("app/assets/forex/eurofxref-daily.xml") { |f| Nokogiri::XML(f) }
我很难访问我感兴趣的节点来提取货币和价值。
我不熟悉 Nokogiri,但是 from this tutorial,看起来您可以应用以下 XPath:/*/e:Cubes/e:Cube/e:Cube
到 select 所有 Cube
元素.
从那里,您可以遍历每个 Cube
元素,以及 select 它们的 @currency
和 @rate
属性:
@doc = Nokogiri::XML(File.open("https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"))
@doc.xpath('/*/e:Cubes/e:Cube/e:Cube', 'e' => 'ttp://www.ecb.int/vocabulary/2002-08-01/eurofxref').each do |node|
# do stuff
currency = node.attr('currency')
rate = node.attr('rate')
end
我有一个 xml 文件,可从以下位置下载:https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
我想做的是浏览货币,这样我就可以将它们保存在我的数据库中。
我有:
open('app/assets/forex/eurofxref-daily.xml', 'wb') do |file|
file << open('https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml').read
end
then
doc = File.open("app/assets/forex/eurofxref-daily.xml") { |f| Nokogiri::XML(f) }
我很难访问我感兴趣的节点来提取货币和价值。
我不熟悉 Nokogiri,但是 from this tutorial,看起来您可以应用以下 XPath:/*/e:Cubes/e:Cube/e:Cube
到 select 所有 Cube
元素.
从那里,您可以遍历每个 Cube
元素,以及 select 它们的 @currency
和 @rate
属性:
@doc = Nokogiri::XML(File.open("https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"))
@doc.xpath('/*/e:Cubes/e:Cube/e:Cube', 'e' => 'ttp://www.ecb.int/vocabulary/2002-08-01/eurofxref').each do |node|
# do stuff
currency = node.attr('currency')
rate = node.attr('rate')
end