Выражение xpath, где индекс верхнего узла неизвестен - PullRequest
4 голосов
/ 29 декабря 2011

В приведенном ниже XML-коде мы хотим получить значение второго вхождения элемента c под всем xml, которое представляет собой «Результат». Какое выражение xpath можно использовать для этого? Обратите внимание, что я не знаю индекс элемента «а» в моем коде. Если я знаю индекс a, xpath легко (/ root / a [4] / b / c).

Однако все, что мы знаем, это второе вхождение элемента c во всем документе. Структура документа одинакова, т.е. есть два случая. Один без значений для элемента а. Второй, элементы b и c, может входить в элемент a.

<root>
  <a></a>
  <a></a>
  <a>
    <b>
      <c>junkdata</c>
    </b>
  </a>
  <a>
    <b>
      <c>Result</c>
    </b>
  </a>
</root>

Ответы [ 2 ]

3 голосов
/ 29 декабря 2011

Или используйте еще короче :

(//c)[2]
3 голосов
/ 29 декабря 2011

Использовать выражение пути descendant::c[2].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...