2010-03-09 6 views
58

Мой образец входного XML является:Получить Nth ребенка узла с помощью XPath

<root> 
<a> 
    <b>item</b> 
    <b>item1</b> 
    <b>item2</b> 
    <b>item3</b> 
    <b>item4</b> 
</a> 
</root> 

Я предполагаю, чтобы выбрать узел b, положение которого является значение переменной.

Как использовать значение переменной для проверки положения узла?

ответ

74

вы можете использовать это:

/root/a/b[position()=$variable] 

положение() является 1 на основе

http://saxon.sourceforge.net/saxon6.5.3/expressions.html

+7

Помните, что это не 0-индекс. Я просто потратил 2 часа на то, чтобы потратить время на то, чтобы найти что-то в позиции 0. –

36

Следующая должно работать:

/root/a/b[2] 

И если это не так, попробуйте:

/root/a/b[position()=2] 
+1

Я пришел сюда, чтобы найти разницу между этими двумя, не могли бы вы объяснить, как они отличаются? – Andre

+4

'position()' относится к позиции в dom [2] относится ко второму результату в списке результатов. –

Смежные вопросы