Как получить XPATH элемента в документе с несколькими элементами с одинаковым идентификатором? - PullRequest
1 голос
/ 23 декабря 2011

Я получаю данные с веб-сайта Google AdWords, который содержит несколько элементов с одинаковым id.

Я бы хотел получить XPath для данного элемента.

Не могли бы вы предложить функцию jQuery / JavaScript, которая может вычислять XPath для данного элемента , предполагая, что страница может содержать несколько элементов с одинаковым id?

Пожалуйста, не говорите мне, что у меня не должно быть нескольких элементов с одинаковым id. Это была не моя идея ...

Ответы [ 2 ]

4 голосов
/ 23 декабря 2011

Вы знаете, что можете получить доступ к xpath с помощью //*[@id='blah'][1], [2] и т. Д. - это ответ, который вы ищете?

0 голосов
/ 23 декабря 2011

Если вы знаете, что элемент, который вы хотите, будет n-ым вхождением этого идентификатора, то предложение Мартина сработает.

Вы также можете сузить результаты, выполнив поиск по нескольким атрибутам и определив элемент, скажем, вы знаете, что идентификатор уникален для элемента div с определенным именем или классом.

//div[@id='hello' and @name='world']

Этого может быть достаточно для вас, но если нет, то вы сможете найти нужный элемент, выполнив поиск относительно других элементов.

Учитывая xml:

<root>
    <div id='parent1'>
        <div id='element1' />
        <div id='element2' />
    </div>
    <div id='parent2'>
        <div id='element1' name='foo' />
        <div id='element2' name='bar' />
    </div>
</root>

Второй элемент 2 можно получить следующими способами:

/root/div[2]/div[2]
//div[@id='parent2']/div[@id='element2']
//div[@id='element2' and name='bar']
//div[@id='element1' and @name='foo']/../div[@id='element2']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...