Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 从许多父级重构xpath_Ruby_Xpath - Fatal编程技术网

Ruby 从许多父级重构xpath

Ruby 从许多父级重构xpath,ruby,xpath,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> &

我尝试使用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?谢谢


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

你能展示一下XML的例子吗?是的,需要你的HTML代码来帮助你。好的,谢谢……添加了一个简单的XML文件版本@pyfl88您希望从xml/html中得到什么结果?另外,请更正您的XML,以便我们可以测试/使用它。一些标记没有正确关闭。@DmytroPastovenskyi添加了一个更详细的版本。我试图从xml文件中获取国家的价值。谢谢
/league/@country