XPATH/PHP与last()的问题

XPATH/PHP与last()的问题,php,xml,xpath,simplexml,Php,Xml,Xpath,Simplexml,我试着在网上阅读各种教程,但在解决这个问题上我没有取得任何进展。这个问题很容易描述,但我无法想出解决办法 以下是一些示例XML: <AAA> <BBB> <CCC>1</CCC> <CCC>2</CCC> </BBB> <BBB> <CCC>3</CCC> <CCC>4</

我试着在网上阅读各种教程,但在解决这个问题上我没有取得任何进展。这个问题很容易描述,但我无法想出解决办法

以下是一些示例XML:

<AAA>
    <BBB>
        <CCC>1</CCC>
        <CCC>2</CCC>
    </BBB>
    <BBB>
        <CCC>3</CCC>
        <CCC>4</CCC>
    </BBB>
</AAA>

1.
2.
3.
4.
我希望能够选择每个容器中的最后一个
。。。换句话说,我希望能够拉取
2
4
。为了达到这个目的,我尝试了无数的表达式,但我所能做的就是得到最后一个
(包含4个)

看起来//BBB/CCC[last()]应该可以工作,但它显然选择了所有属于BBB(总共4个)子级的CCC,然后才处理last()谓词,因此只返回单个元素
4

这简直快把我逼疯了!谁能给我指一下灯吗?非常感谢

/AAA/BBB/CCC[position() = last()]

//BBB/CCC[position()=last()]
//CCC[position()=last()]
似乎也起作用。我在这里找到了一个很酷的xpath测试站点:

Nice!感谢分享网站链接:)更短(但等效):
/AAA/BBB/CCC[last()]
/CCC[last()]
。注意:只要可能,我都会避免使用
/
速记,因为它相对比较昂贵。甚至像
/*/*/CCC[last()]
这样的东西也比
/
好。