2013-08-25 33 views
1

我正在使用simpleXML和php。我試圖讓我的頁面根據不同子元素的值訪問特定的子元素。我很困惑如何做到這一點,而不需要循環遍歷特定父代的每個孩子。我試圖用xpath來做這件事,但我無法弄清楚正確的格式。我的XML是:無法弄清楚如何訪問特定子元素

<vendor> 
    <vendor_id>6</vendor_id> 
    <name>Store</name> 
     <stock> 
      <stock_id>4</stock_id> 
      <stock_url>http://www.url.com/item.php</stock_url> 
     </stock> 
     <stock> 
      <stock_id>9</stock_id> 
      <stock_url>http://www.url.com/items.php</stock_url> 
     </stock> 
    </vendor> 

我想訪問特定股票ID的stock_url。這是可能的,還是我需要遍歷每一個股票的實例,並進行比較以找到我想要的?

回答

1

這應該這樣做:

$xml = new SimpleXMLElement($string); // <-- assuming the XMl you mentioned above is in $string 
$stock_id = 9; 
$result = $xml->xpath('/vendor/stock[stock_id='.$stock_id.']'); 
if(!empty($result)) $url = $result[0]->stock_url; 
+0

它的工作完美!比我更容易做到這一點。非常感謝你的幫助。 – Katp00p