如何获取XPath的Text()值

时间:2018-06-02 17:48:30

标签: xpath

我试图在表格中获取someValue的text()值。

这是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 :(得分:1)

我不确定这是你想要的,但要获得值SomeValueInTheFirtColumn,你的XPath中只有一个td太多了。所以把它改成

//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()

另一方面,如果您想在CityACityB之间检索值'AA',以下XPath将提取您想要的内容:

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