我已经尝试在线阅读各种教程,但我无法在解决这个易于描述但我无法想象解决方案的问题上取得任何进展。
这是一些示例 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 - last() 的 XPATH/PHP 问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1699373/