2013-06-30 70 views
2

我正在嘗試使用來自高爾夫錦標賽的xml Feed來顯示每位高爾夫球手在高爾夫球場上的位置。我目前想要顯示符合兩項標準的每位高爾夫球手(排名前25位,以及所有加拿大高爾夫球手)。在xpath中選擇多個條件

以下是xml提要的示例。

<GolfDataFeed Type="Leaderboards" Timestamp="3/21/2012 9:18:09 PM"> 
<Tournament ID="27828" Name="WEGMANS LPGA CHAMPIONSHIP"> 
<Leaderboard RoundID="4" CutRound="" CutLine=""> 
<Player ID="82866" WwgrID="975" FirstName="Inbee" LastName="Park" Country="KOR" IsAmateur="False" Rank="1" RankTied="False" StartRank="1" StartRankTied="False" Thru="0" StartTee="1" StartTime="01:25 PM" RoundToPar="0" CumulativeTotal="206" CumulativeToPar="-10" Money="0" TournamentStatus="ACT" RoundStatus="ACT"> 
<Player ID="82850" WwgrID="434" FirstName="I.K." LastName="Kim" Country="KOR" IsAmateur="False" Rank="2" RankTied="False" StartRank="2" StartRankTied="False" Thru="0" StartTee="1" StartTime="01:25 PM" RoundToPar="0" CumulativeTotal="210" CumulativeToPar="-6" Money="0" TournamentStatus="ACT" RoundStatus="ACT"> 
<Player ID="88290" WwgrID="3336" FirstName="Jodi" LastName="Ewart Shadoff" Country="ENG" IsAmateur="False" Rank="3" RankTied="False" StartRank="3" StartRankTied="False" Thru="0" StartTee="1" StartTime="01:14 PM" RoundToPar="0" CumulativeTotal="213" CumulativeToPar="-3" Money="0" TournamentStatus="ACT" RoundStatus="ACT"> 
<Player ID="98006" WwgrID="2982" FirstName="So Yeon" LastName="Ryu" Country="KOR" IsAmateur="False" Rank="4" RankTied="True" StartRank="4" StartRankTied="True" Thru="0" StartTee="1" StartTime="01:14 PM" RoundToPar="0" CumulativeTotal="215" CumulativeToPar="-1" Money="0" TournamentStatus="ACT" RoundStatus="ACT"> 
</Leaderboard> 
</Tournament> 
</GolfDataFeed> 

這裏是我寫的,選擇誰是加拿大還是在排名前25位

$context = stream_context_create(array('http' => array('header' => 'Accept: application/xml'))); 
$url = 'http://services.lpgascoring.com/ws/1.2/leaderboard; 
$xml = file_get_contents($url, false, $context); 
$xml = simplexml_load_string($xml); 

foreach($xml->xpath("///Player[@Rank<'25' or @Country='CAN']") as $Player) 

我已經嘗試添加額外的線路來選擇球員通過他們的名字全部球手的代碼,但這似乎並不奏效。

foreach($xml->xpath("///Player[@Rank<'25' or @Country='CAN' or @LastName='Wie' or @LastName='Peterson']") as $Player) 

有沒有人有任何想法,你會如何在xpath查詢中包含更多的條件語句?

由於提前, 邁克

+0

您的xpaht對我來說看起來完全合適。在您的示例XML中,只有沒有姓氏的人或Wie。 –

回答

0

你有太多的前鋒在你的XPath斜槓。試試這個XPath代替:

//Player[@Rank<'25' or @Country='CAN'] 
+0

我想說聲稱這個「已經被回答」的例子與這個xml代碼沒有任何相似之處。 – MikeSonne