Как получить узлы, используя xpath - PullRequest
1 голос
/ 06 июля 2010

Когда у меня есть 2 набора узлов с одинаковым именем элемента, например:

<contacts>
    <names>
      ...
    </names>
    <names>
      ...
    </names>
</contacts>

Обычно я бы использовал //contacts/names, чтобы получить узел, но как мне это сделать, если они имеют одинаковое имякак мне получить второе или первое или nth?

Ответы [ 3 ]

1 голос
/ 06 июля 2010

Для предоставленного XML-документа используйте:

/contacts/names[1]

вышеупомянутый выбирает первый names элемент.

/contacts/names[2]

вышеупомянутый выбирает второй names элемент.

Старайтесь по возможности избегать использования сокращения // , поскольку оно, как правило, крайне неэффективно, приводит к обходу всего (под) дерева, повернутого в узле контекста.

0 голосов
/ 06 июля 2010

Вы можете сделать это, чтобы получить первый и / или второй конкретно:

//contacts/names[1]
//contacts/names[2]
0 голосов
/ 06 июля 2010

Используйте // contacts / names [n] для получения n-го узла имен. Например: // contacts / names [1] получает первый узел имен, а // contacts / names [2] получает второй узел имен и т. Д.

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