-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 に答える