[英]php xpath on XML
我怎樣才能做到這一點:
<root>
<gallery name="First">
<picture active="1" detail="not shown"/>
<picture active="1" detail="not shown"/>
<picture active="0" detail="not shown"/>
</gallery>
<gallery name="Second">
<picture active="0" detail="not shown"/>
<picture active="1" detail="SHOW THIS ONE"/>
<picture active="1" detail="AND SHOW THIS ONE" />
</gallery>
</root>
我正在努力:
$myArray = $objXML->xpath('gallery[@name="Second"]/picture[@active=1]');
如何更改它以獲得所需的輸出? 謝謝,安迪
你的XPath錯了。 要么使用
/root/gallery[@name="Second"]/picture[@active=1]
僅從根節點匹配此節點星座或
//gallery[@name="Second"]/picture[@active=1]
在文檔中的任何位置匹配此節點星座(較慢)
完整的工作示例:
$dom = new DOMDocument;
$dom->load('NewFile.xml'); // containing your XML
$xp = new DOMXPath($dom);
$pictures = $xp->query('/root/gallery[@name="Second"]/picture[@active=1]');
foreach ($pictures as $picture) {
echo $dom->saveXml($picture), PHP_EOL;
}
給
<picture active="1" detail="SHOW THIS ONE"/>
<picture active="1" detail="AND SHOW THIS ONE"/>
和
$sxe = new SimpleXMLElement('NewFile.xml', NULL, TRUE);
$pictures = $sxe->xpath('/root/gallery[@name="Second"]/picture[@active=1]');
foreach ($pictures as $picture) {
echo $picture['detail'], PHP_EOL;
}
給
SHOW THIS ONE
AND SHOW THIS ONE
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.