2010-08-19 78 views

回答

8

你有什么应该返回每个元素的第一个孩子。
所以//a[1]将工作如下(结果将是2个节点):

X 
Y 
    a <-- give you this 
    a 
Z 
a <-- and this 
a 

尝试(//a)[1]代替

+0

+1很好的可视化解释和简洁的解释。 – 2010-08-19 04:08:39

+0

[Xacobeo](http://p3rl.org/Xacobeo)可以以交互方式执行此可视化。 – daxim 2010-08-19 06:41:48

3

即XPATH表达式查找所有a元件在文档的每一个级别和谓词过滤器选择每一步首先需要a

所以,这取决于你的XML是如何组织的,你可能无法得到a元素(如果有一个以上的a那名兄弟姐妹,你只会得到那些兄弟姐妹的第一个)。

但是,如果您打算在文档中只选择第一a,你可以使用这个表达式:(//a)[1]

缠绕在括号//a选择创建一个集合,谓词过滤器,然后应用,选择集合中的第一个,而不是在//的每个步骤遇到的第一个a