我有一些需要从中提取值的xml。非常简化的版本如下:
...
<event id="380783">
...
<competitor id="1929" name="x">
<homeaway>home</homeaway>
</competitor>
...
</event>
...
有很多事件,每个事件都有一个“主场”团队和“离场”团队-我需要获得主场和替身的竞争对手ID,但我需要知道哪个是哪个。
就我自己而言,我可以这样获得ID:
doc.xpath("//event[@id=#{uid}]//competitor").attr('id').value
我还可以找出给定的节点是“家”还是“家”
2.1.1 :107 > first_match.xpath('//event[@id=#{uid}]//competitor//homeaway').children[0].text
=> "home"
2.1.1 :108 > first_match.xpath('//event[@id=#{uid}]//competitor//homeaway').children[1].text
=> "away"
但我想找到按居家还是外出来确定ID的范围。就像是:
away = xpath('//event[@id=#{uid}]//competitor//homeaway).children.text == away
away.parent.attr('id')
我该怎么办?
这个怎么样(使用ancestor
轴得到id
的competitor
):
home_id = doc.at_xpath(
"//event[@id=#{uid}]//competitor//homeaway[text()='home']" +
"/ancestor::competitor/@id").value
away_id = doc.at_xpath(
"//event[@id=#{uid}]//competitor//homeaway[text()='away']" +
"/ancestor::competitor/@id").value
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句