XPATH / PHP麻烦last()

我已经尝试过在线阅读各种教程,但是在解决这个问题上却一事无成,这很容易描述,但是我无法想到一个解决方案.

这是一些示例XML

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

我希望能够选择最后一个< CCC>换句话说,我希望能够拉出< CCC> 2< CCC> < CCC> 4< CCC>.我已经尝试了无数表达式来实现这一目标,但是我能做的最好的就是获得最后的< CCC> (包含4个).

似乎// BBB / CCC [last()]应该工作,但显然它选择了所有BBB子代的CCC(总共4个),然后才处理last()谓词-因此只返回一个元素< CCC> 4< / CCC>

这真让我发疯!谁能给我看看光?非常感谢!!

解决方法:

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

// BBB / CCC [position()= last()]和// CCC [position()= last()]似乎也起作用.我在这里找到了一个不错的xpath测试站点:http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm

上一篇:通过使用PHP SimpleXML选择具有特定名称的所有节点-附带的源代码


下一篇:PHP SimpleXML大文件没有额外的内存使用量