使用ruby nokogiri从URL中读取xml

时间:2012-02-09 19:53:07

标签: ruby xml xpath nokogiri

我正在尝试解析一堆XML文件。我正在使用Nokogiri,Ruby和XPath。但是没有得到任何结果。我做错了什么,对于一些提示或一些代码示例会非常有用。

XML文件示例:xml-link

这是我的红宝石脚本:

require 'rubygems'
require 'nokogiri'
require 'open-uri'

# parse the HTML document with all the links to the XML files.
doc = Nokogiri::HTML(open('link'))
# URLS - array
@urls = Array.new 
#Get all XML-urls and save them in urls-array
doc.xpath('//a/@href').each do |links|
  @urls << links.content
end

#LOCALITY array
@locality = Array.new
# loop all the url of the XML files
@urls.each do |url|
  doc = Nokogiri::HTML(open(url))
  # grab the content I want
  doc.xpath('//educationprovider//vcard//adr/locality').each do |locality_node| 
   # store it in locality array
    @locality << locality_node.content
  end
  # loop the the locality array and print it out
  (0..@locality.length - 1).each do |index|
    puts "LOCAL: #{@locality[index]}"
  end  
end

修改 问题出在xpath表达式中。正确的表达是: // // educationprovider将vcard // // ADR局部性

1 个答案:

答案 0 :(得分:1)

问题出在xpath表达式中。 正确的表达式是:// educationprovider // vcard // adr // locality