题
我有这样的XML 通用标签
我想要一个xpath(我在c#上下文中而不是xslt模板)获得第2个第一个元素,值为4,即 通用标签
使用/root/el[position() <= 2 and @value=4]
我会得到0个元素,因为position()基于父节点,而不是当前子集。
我可以在C#中执行此操作,但是当我只需要20个节点时加载1200个节点似乎没用。
谢谢
解决方案
以下内容在XSLT脚本中对我有用; 通用标签
结果是id的3和4,因此XPATH /root/el[@value=4][position()<=2]
应该适合您。
其他提示
@rsp的答案是正确的,但我想添加一个解释。[cond1 and cond2]
等同于[cond1][cond2]
并不总是正确的。您需要第二种形式。
您的表情: 通用标签
...选择具有el
属性等于value
属性且位置小于或等于4
的所有2
元素。您的文档中没有此类元素。
您要: 通用标签
......它首先选择具有与el
相等的value
属性的所有4
元素,然后根据需要按位置列出该过滤器。
不隶属于 StackOverflow