【问题标题】:Rails: Cannot Parse XML Response using NokogiriRails:无法使用 Nokogiri 解析 XML 响应
【发布时间】:2012-10-08 02:11:24
【问题描述】:

我基本上是想从我对 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

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

【问题讨论】:

    标签: ruby-on-rails xml api nokogiri


    【解决方案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
    

    【讨论】:

    • 非常感谢!还有一个问题。是否可以从lyrics 参数中删除“歌词”标签?
    • 没问题。我修好了它。非常感谢您的回复。
    【解决方案2】:

    执行 response.remove_namespaces!在 response.xpath 之前

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      相关资源
      最近更新 更多