2013-08-25 29 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