-3

我有这个示例 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

我的 XPATH:-

$tab = $product->xpath('//tab_id/*');

谁能建议XPath获取子元素的方法是什么?谢谢。

4

2 回答 2

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 文件。

于 2013-05-20T13:09:46.927 回答
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;
}
于 2013-05-20T13:02:06.287 回答