我使用的是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。这是可能的,还是我需要遍历每个库存实例并进行比较以找到我想要的那个?
答案 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;