我有这个示例xml文件: -
<products>
<product_id value="1">
<tab_id value="251">
<dist_region value="5" />
<dist_region value="10066" />
<dist_region value="10069" />
</tab_id>
</product_id>
</products>
我正在尝试使用tab_id
获取XPath
子元素,并且我希望得到一组子元素。
我的预期输出如下: -
dist_region,dist_region,dist_region
MY XPATH: -
$tab = $product->xpath('//tab_id/*');
任何人都可以建议获得子元素的XPath
是什么?
感谢。
答案 0 :(得分:2)
你试过的xpath对我有用。所以,试试下一个代码:
$sxml = new SimpleXMLElement($xml);
$xpath = $sxml->xpath('//tab_id/*');
$array = array();
foreach ($xpath as $child)
{
$array[] = $child->getName();
}
echo implode(',',$array);
它为你提供了你想要的输出:dist_region,dist_region,dist_region。
已$xml
您的XML文件。
答案 1 :(得分:1)
您的XPath
应基于value
等特定条件(如果<tab_id id='256'>
更可读)
$result = $product->query('//tab_id[@value=' . $id . ']/*');
然后循环遍历
if($result->length){
foreach ($result as $item):
echo "Value: ".$item['value'];
echo "<hr>";
endforeach;
}