如何使用xpath php获取唯一值?

时间:2014-08-22 14:14:35

标签: php xpath

这是我的xml。我需要从代码中找到产品的唯一值

<products>
    <product>
        <token><code>1</code></token>
        <productName>Product 1</productName>
    </product>
    <product>
        <token><code>2</code></token>
        <productName>Product 2</productName>
    </product>
    <product>
        <token><code>1</code></token>
        <productName>Product 2</productName>
    </product>
    <product>
        <token><code>3</code></token>
        <productName>Product 2</productName>
    </product>
</products>

我尝试如下 我把它加载到$xd_item

foreach ( $xd_item->xpath('/product/token[not(code=preceding-sibling::token/code)]/token') as $n )
{ 
echo $n;
}

我需要像下面那样放

 product code : 1
    product Name : Product 1

    product code : 2
    product Name : Product 2

    product code : 3
    product Name : Product 3

1 个答案:

答案 0 :(得分:0)

您需要检查以下兄弟姐妹和兄弟姐妹,以确保<product>没有重复:

/products/product[
               not(token/code=preceding-sibling::token/code) 
                    and 
               not(token/code=following-sibling::token/code)
                 ]

然后,您将能够遍历上述XPath选择的<product>个节点,并打印产品的任何所需部分,例如:

foreach ($xd_item->xpath(....) as $n)
{ 
    echo $n->token->code;
    echo $n->productName;
}