无法弄清楚如何访问特定孩子的元素

时间:2013-08-25 21:18:13

标签: php xml xpath

我使用的是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 个答案:

答案 0 :(得分: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;