Как получить Text () значение XPath - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь получить текстовое () значение someValue в таблице.

Это HTML:

<div class="giveHeight">
<table width="100%" cellspacing="0" cellpadding="3" border="0" id="loads" class="dataTable" aria-describedby="loads_info">
    <thead>
        <tr class="tableHeading" role="row">
            ...Header...
        </tr>
    </thead>                    
    <tbody role="alert" aria-live="polite" aria-relevant="all">
        <tr class="odd">
            <td class=" ">SomeValueInTheFirtColumn</td>
            <td style="text-align: center;" class=" ">1</td>
            <td class=" ">aabbcc</td>
            <td class=" ">CityA</td>
            <td class=" ">AA</td>
            <td class=" ">CityB</td>
            <td class=" ">BB</td>
            <td style="text-align: right;" class=" ">00</td>
            <td style="text-align: right;" class=" ">$1.00</td>
            <td style="text-align: right;" class=" ">$1.00</td>
            <td style="text-align: right;" class=" ">
                <a href="/xx/xx.asp?id=99999">
                    <img src="/tab/images/icons/view.gif" border="0" alt="view" width="14" height="14">
                </a>
            </td>
            <td style="text-align: right;" class=" "></td>
        </tr>
    </tbody>
</table>

В первый столбец , есть значение, которое я хочу найти.Однако это зависит от части значений в cityA и cityB.

Я пытался что-то подобное, но не работает:

//div[@class='giveHeight']/table/tbody/tr/td/td[following-sibling::td[text()='CityA']/following-sibling::td[text()='CityB']]/text()

1 Ответ

0 голосов
/ 02 июня 2018

Я не уверен, что это то, что вы хотите, но чтобы получить значение SomeValueInTheFirtColumn, у вас есть только один td слишком много в вашем XPath.Поэтому измените его на

//div[@class='giveHeight']/table/tbody/tr/td[following-sibling::td[text()='CityA']/following-sibling::td[text()='CityB']]/text()

, и в результате вы получите SomeValueInTheFirtColumn.

Но следующее, более короткое выражение дает тот же результат:

//div[@class='giveHeight']/table/tbody/tr/td[1]/text()

С другой стороны, если вы хотите получить значение 'AA' между CityA и CityB, следующий XPath извлечет то, что вы хотите:

//div[@class='giveHeight']/table/tbody/tr/td[following-sibling::td[text()='CityB'] and preceding-sibling::td[text()='CityA']]/text()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...