我的样例输入XML如下:
<root>
<a>
<b>item</b>
<b>item1</b>
<b>item2</b>
<b>item3</b>
<b>item4</b>
</a>
</root>
我应该选择一个节点 b
,其位置的值是一个变量。
如何使用变量的值来测试节点的位置?
你可以使用这个:
/root/a/b[position()=$variable]
position()是基于1的
以下代码应该可以运行:
/root/a/b[2]
如果这样不行,尝试:
/root/a/b[position()=2]
position()
指的是在DOM中的位置。[2]指的是结果列表中的第二个结果。 - Becky Conningfor-each
循环的select
语句中使用时,它们是相同的。当position()
在循环本身中使用时,它指的是结果集。[n]
格式之所以有效,是因为它是[ ]
块内唯一的条件语句,否则必须使用position()
,例如//a[(@id="xx") and (position()=3)]
,这表示“任何具有id
为xx的第五个链接”。 - Patanjali