Nokogiri解析

我有一些XML:

xml = <<-EOT   Sport Mobile Flowers   EOT 

并希望解析它:

 id=[] text=[] doc = Nokogiri::XML(xml) doc.search('advcampaign_categories').each do |cat| c = cat.at('category') text << c.text id << c['id'] end h = Hash[text.zip id] 

我的目标是获得像{sport:85, mobile:79..etc}这样的哈希值。

这段代码的问题是它只返回一个元素sport:85

有什么建议?

 require 'nokogiri' doc = Nokogiri::XML.parse <<-EOT   Sport Mobile Flowers   EOT # if you are >= 2.1 doc.css('category').map { |node| [node.text, node['id'].to_i] }.to_h # => {"Sport"=>85, "Mobile"=>79, "Flowers"=>62} # if you are below version < 2.1 Hash[doc.css('category').map { |node| [node.text, node['id'].to_i] }] # => {"Sport"=>85, "Mobile"=>79, "Flowers"=>62}