无法弄清楚如何访问特定子元素
问题描述:
我正在使用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。这是可能的,还是我需要遍历每一个股票的实例,并进行比较以找到我想要的?
答
这应该这样做:
$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;
它的工作完美!比我更容易做到这一点。非常感谢你的帮助。 – Katp00p