重构许多父母的xpath

时间:2015-10-05 12:48:45

标签: ruby xpath

我正在尝试使用xpath获取值,我的代码是这样的:

path = "//league/match/odds/type[@name='1x2']/bookmaker[1]"
    @a = xml.xpath(path).map do |x|
      {country => x.parent.parent.parent.parent['country']}
end

xml文件的简化版本示例:

<league country="england">
<match>
<home alternate_id="5363803833" id="2341073" name="Leicester"/>
<away alternate_id="5363803814" id="2340835" name="Arsenal"/>
<odds>
<type name="1x2">
<bookmaker id="779" name="10Bet">
<odd name="1" value="4.15"/>
<odd name="2" value="1.87"/>
<odd name="X" value="3.80"/>
</bookmaker>
<bookmaker id="947" name="12Bet">
<odd name="1" value="3.90"/>
<odd name="2" value="1.87"/>
<odd name="X" value="3.60"/>
</bookmaker>
</type>
</odds>
</match>
</league>

有更好的方法来替换parent.parent.parent.parent吗?感谢

1 个答案:

答案 0 :(得分:0)

/league/@country

将返回一个国家。这就是你刚才问的问题。