我试图解析一个实时博彩XML源,并需要从代码中获取每个赌注。用简单的英语,我需要使用标记'EventSelections'来查看我的基本查询,并通过XML上的这些标记'循环',这样我就可以获取所有数据,并为每个可以在CMS上使用的数据创建和实体化。XPATH - 无法选择祖父节点
我的问题是我想在树的两个地方去祖父母节点收集信息。每个EventID指的是游戏的唯一名称,有些游戏比其他游戏有更多的投注。重要的是我抓住每个赌注和与它相关的EventID,问题是,这个ID是祖父母每次。例如:
<Sportsbet Time="2013-08-03T08:38:01.6859354+09:30">
<Competition CompetitionID="18" CompetitionName="Baseball">
<Round RoundID="2549" RoundName="Major League Baseball">
<Event EventID="849849" EventName="Los Angeles Dodgers (H Ryu) At Chicago Cubs (T Wood)" Venue="" EventDate="2013-08-03T05:35:00" Group="MTCH">
<Market Type="Match Betting - BIR" EachWayPlaces="0">
<EventSelections BetSelectionID="75989549" EventSelectionName="Los Angeles Dodgers">
<Bet Odds="1.00" Line=""/>
</EventSelections>
<EventSelections BetSelectionID="75989551" EventSelectionName="Chicago Cubs">
<Bet Odds="17.00" Line=""/>
</EventSelections>
有谁知道我怎么能抓住granparent标签以及?
目前我使用:
//EventSelections (this is the context)
.//@BetSelectionID
.//@EventSelectionName
我已经试过几十种不同的方法来做到这一点,包括../ ..运营商将不能工作。我会永远感激这方面的任何帮助。谢谢。
你能举一个例子说明你如何精确使用'..'运算符? –
我想你只是没有走得远远不够树:'../*'给你你的兄弟姐妹,'../../*'给你你的阿姨和叔叔,../../。 ./*'给你你的祖父母。这是因为'..'向上走了一级,但'/'向下走了一级...所以你必须在你再次下去之前比你射击的高一级。 –
这最后工作:..//..//..//@RoundID我使用Drupal 7和XPATH的饲料模块,并已在这个问题上工作了大约15个小时。我真的很感激你把我推向了正确的方向,我很高兴我现在已经解决了!谢谢大家。随时给我发电子邮件给那些坚持使用Drupal和XPATH的人。 –