Как извлечь значение соседнего узла атрибута через XPath? - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть две разные веб-страницы, и я хочу извлечь некоторые значения с помощью XPath. Какой запрос может извлечь 2386028 с первой страницы и в то же время может извлечь 4019606 со второй страницы? Мне нужен один запрос, который может универсально извлечь эти значения.

Фрагмент первой страницы:

    <ul class="g-ul b-properties">
        <li class="b-properties__header">General</li>
        <li class="b-properties__item">
            <span class="b-properties__label">
                <span>VendorCode</span>
            </span>
            <span class="b-properties__value">2386028</span>
        </li>
        <li class="b-properties__item">...</li>
        <li class="b-properties__item">...</li>
        <li class="b-properties__item">...</li>

и второй фрагмент страницы:

<div class="b-properties-holder" id="tab_3">

    <ul class="g-ul b-properties">
        <li class="b-properties__header">General</li>
        <li class="b-properties__item">
            <span class="b-properties__label">
                <span>Trademark</span>
            </span>
            <span class="b-properties__value">
                <a class="link b-properties-link" href="/trademark/moist-diane/?sort=-date&amp;currency=USD">Moist Diane</a>
            </span>
        </li>
        <li class="b-properties__item">
            <span class="b-properties__label">
                <span>VendorCode</span>
            </span>
            <span class="b-properties__value">4019606</span>
        </li>
        <li class="b-properties__item">...</li>
        <li class="b-properties__item">...</li>

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете выбрать элемент <li>, который имеет элемент <span class="b-properties__label">, который содержит <span> со значением VendorCode, а затем получить значение <span class="b-properties__value"> для этого элемента <li>.

Например:

//li[span[@class="b-properties__label"]/span="VendorCode"]/span[@class="b-properties__value"]/text()

В качестве альтернативы вы можете выбрать элемент <span class="b-properties__label">, который имеет <span> со значением VendorCode, и получить его следующего брата.

//span[@class="b-properties__label" and span="VendorCode"]/following-sibling::span/text()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...