使用Nokogiri选择XML文件的属性值

时间:2015-03-04 04:44:33

标签: ruby-on-rails xml nokogiri

我正在开发一个项目,使用nokogiri将xml文件解析为某个表结构。目前我在控制器中得到了这个:

def new
  doc = Nokogiri::HTML(open('sample3.xml'))
  @home = doc.xpath('//match').map do |i|
  {'title' => i.at('home')['name'], 'away' => i.at('away')['name']}
  end
end

这是XML文件的格式:

<league country="worldcup" cup="True" id="2889" name="World: World Cup" sub_id="63638038137">
<matches date="12.06.2014">
<match alternate_id="3844428" alternate_id_2="4013768" date="12.06.2014" id="3551903" status="20:00" time="20:00">
<home alternate_id="536380381512" id="2338917" name="Brazil"/>
<away alternate_id="536380381513" id="2340076" name="Croatia"/>
<odds>
<type id="766" name="1x2">
<bookmaker id="947" name="12Bet">
<odd name="1" value="1.27"/>
<odd name="2" value="9.56"/>
<odd name="X" value="5.32"/>
</bookmaker>
<type id="767" name="Home/Away">
<bookmaker id="821" name="188Bet">
<odd name="1" value="1.04"/>
<odd name="2" value="8.50"/>
</bookmaker>
</type>
</odds>
</match>
</matches>
</league>

我上面的代码可以选择主队和客队。但是如何编写选择name =“1x2”类型的奇数值的代码?

感谢。

此致 荫

1 个答案:

答案 0 :(得分:0)

试试这个。它可能对你有用

f = File.open("sample3.xml")
=> #<File:sample3.xml>
>> doc = Nokogiri::XML(f)
root = doc.root
>> # again here you'll see the complete XML document output to the console.
>> root["id"]
=> "2889"

Documentation