【发布时间】:2014-11-07 03:16:25
【问题描述】:
我有一些 XML:
xml = <<-EOT
<xml>
<advcampaign_categories>
<category id="85">Sport</category>
<category id="79">Mobile</category>
<category id="62">Flowers</category>
</advcampaign_categories>
</xml>
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。
有什么建议吗?
【问题讨论】:
-
只有一个
advcampaign_categories,这就是为什么你只会得到一个结果。改为doc.search('category).each
标签: ruby-on-rails ruby parsing nokogiri