Использовать индекс после фильтра на xpath

У меня есть следующий фрагмент XML.

<root>
  <site type="main">
    <link>http://stackexchange.com</link>
  </site>
  <site type="qa">
    <link>http://stackru.com</link>
  </site>
  <site type="qa">
    <link>http://superuser.com</link>
  </site>
  <site type="">
    <link>http://data.stackexchange.com</link>
  </site>
</root>

Я хочу выбрать первую ссылку на сайт типа "qa". Я думаю //site[@type="qa"][1] должен сделать это. Но идентификатор не работает.

1 ответ

Решение

Попробуй (//site[@type="qa"])[1]/link/text(),

Или, альтернативно:

//site[@type="qa"][position()=1]/link/text()

Протестировано на http://www.xpathtester.com/, результаты в http://stackru.com,

Другие вопросы по тегам