0

私は基本的に、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

ドキュメントを読みましたが、答えが見つかりませんでした。ここで何が間違っていますか?

4

2 に答える 2

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
于 2012-10-17T18:52:40.073 に答える
1

response.remove_namespaces を実行してください! response.xpathの前

于 2012-10-17T18:54:18.163 に答える