如何解析API请求中的XML节点



如何保存从API获得的XML页面中的信息?

URL为"http://api.url.com?number=8-6785503",并返回:

<OperatorDataContract xmlns="http://psgi.pts.se/PTS_Number_Service" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <Name>Tele2 Sverige AB</Name>
  <Number>8-6785503</Number>
</OperatorDataContract>

如何将NameNumber节点解析为文件?

这是我的代码:

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

url = "http://api.url.com?number=8-6785503"
doc = Nokogiri::XML(open(url))
File.open("exporterad.txt", "w") do |file|
            doc.xpath("//*").each do |item|
                title = item.xpath('//result[group_name="Name"]')
                phone = item.xpath("/Number").text.strip

                puts "#{title} ; n"
                puts "#{phone} ; n"


                company = " #{title}; #{phone}; nn"
                file.write(company.gsub(/^s+/,''))

        end
end

除了你的代码不是有效的Ruby之外,你还让它变得比必要的要困难得多,至少对于一个简单的刮取和保存来说:

require 'nokogiri'
require 'open-uri'
url = "http://api.pts.se/PTSNumberService/Pts_Number_Service.svc/pox/SearchByNumber?number=8-6785503"
doc = Nokogiri::XML(open(url))
File.open("exported.txt", "w") do |file|
  name = doc.at('Name').text
  number = doc.at('Number').text
  file.puts name
  file.puts number
end

运行它会产生一个名为"exported.txt"的文件,其中包含:

Tele2 Sverige AB
8-6785503

您可以根据需要在此基础上进行扩展。

相关内容

  • 没有找到相关文章