Rails:无法使用Nokogiri解析XML响应

时间:2012-10-17 18:19:12

标签: ruby-on-rails xml api nokogiri

我基本上试图从我对ChartLyrics API的响应中获取Lyric标记。这是我写的代码:

require 'nokogiri'
require 'open-uri'

request = Net::HTTP.get(URI.parse('http://api.chartlyrics.com/apiv1.asmx/GetLyric?lyricId=1710&lyricCheckSum=a4a56a99ee00cd8e67872a7764d6f9c6'))
puts request
response = Nokogiri::XML(request)

puts response.xpath("//Lyric")[0].to_s

我已阅读文档,但未找到答案。我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

尝试以下代码

require 'open-uri'
require 'nokogiri'
xml_doc = Nokogiri::XML(open('http://api.chartlyrics.com/apiv1.asmx/GetLyric?lyricId=1710&lyricCheckSum=a4a56a99ee00cd8e67872a7764d6f9c6'))
#I always prefer css than xpath
lyrics = xml_doc.css('Lyric')
if lyrics.empty?
  puts "COuld not find any lyric in the XML document'
else
  puts lyrics[0].to_s
end

答案 1 :(得分:1)

执行response.remove_namespaces!在response.xpath

之前