我的样本输入XML是:
<root>
<a>
<b>item</b>
<b>item1</b>
<b>item2</b>
<b>item3</b>
<b>item4</b>
</a>
</root>
我想选择一个b
位置为变量值的节点。
如何使用变量的值来测试节点的位置?
Answers:
您可以使用此:
/root/a/b[position()=$variable]
position()基于1
以下应该工作:
/root/a/b[2]
如果没有,请尝试:
/root/a/b[position()=2]
position()
指的是dom中的位置[2]指的是结果列表中的第二个结果。
for-each
循环select
语句中使用时,它们是相同的。在position()
循环本身中使用时,它引用结果集。该[n]
格式仅用作速记方式,因为它是[ ]
块内唯一的条件,否则position()
必须使用,如中所述//a[(@id="xx") and (position()=3)]
,即“任何第一个id
具有xx的第五个链接”。
\\*[2]
和\\*[position()=2]
针对问题的XML来给我“ item1” 。谢谢!