xpath 准确匹配 跟 模糊匹配属性

3 篇文章 0 订阅
2 篇文章 0 订阅
使用text()来做标记,用来确定位置.

测试文本

">    <tbody>
    <tr class="result1">
        <th class="field-name">Type</th>
        <td>Electronic Thesis or Dissertation</td>
    </tr>
    <tr class="result2">
        <th class="field-name">Type</th>
        <td>Text</td>
    </tr>
    <tr class="result1">
        <th class="field-name">Type</th>
        <td>Image</td>
    </tr>
    <tr class="result2">
        <th class="field-name">Type</th>
        <td>StillImage</td>
    </tr>
    <tr class="result1">
        <th class="field-name">Language</th>
        <td>fr</td>
    </tr>
    <tr class="result2">
        <th class="field-name">Identifier</th>
        <td>
            <a onclick="ga('send', 'event', 'External-link', 'Identifier', '/full.php?id=1183922'); return logDownload('1183922');"
               href="http://www.theses.fr/2016SACLS038"
               title="View original record">http://www.theses.fr/2016SACLS038</a></td>
    </tr>
    </tbody>
</table>

测试1

//th[.='Type'] # 获取到所有文本为Type的值.

我们为了获取,第一个文本
文本1

需要在此基础上我们获取它的父节点下面的td的文本内容../td/text(),我们只需要获取第一个值加一个坐标.

(//th[.='Type']/../td/text())[1]  # 得到预期的结果 Electronic Thesis or Dissertation
使用属性的多值匹配 使用contains

倘若属性的值发生变化.但是存在一定规律,如下图class='result1'或者是class='result2'之类的.我们需要获取他们的内容.

<tr class="result1">
    <th class="field-name">Type</th>
    <td>Electronic Thesis or Dissertation</td>
</tr>
<tr class="result2">
    <th class="field-name">Type</th>
    <td>Text</td>
</tr>
<tr class="result1">
    <th class="field-name">Type</th>
    <td>Image</td>
</tr>
<tr class="result2">
    <th class="field-name">Type</th>
    <td>StillImage</td>
</tr>
<tr class="result1">
    <th class="field-name">Language</th>
    <td>fr</td>
</tr>

xpath 语法

//tr[contains(@class,'result')] # 得到所有class 包含result的语句
获取多个参数
<div class="accordion-tabbed__tab-mobile ">
    <a href="#" data-id="a2" data-db-target-for="a2" title="Costa M. L."
       class="author-name accordion-tabbed__control visible-x"><span>Costa M. L.</span><i aria-hidden="true"
                                                                                          class="icon-arrow_d_n"></i></a>
    <div data-db-target-of="a2" class="author-info accordion-tabbed__content"><p>PhD, FRCS (Tr &amp; Orth), Clinical
        Senior Lecturer</p>
        <p class="author-type"></p>
        <p></p>
        <p>1Clinical Sciences Institute University of Warwick Medical School, Clinical Sciences Building, University
            Hospital, Clifford Bridge Road, Coventry CV2 2DX, UK.</p>
        <div class="bottom-info"><p><a href="/author/Costa%2C+M+L">
            Search for more papers by this author
        </a></p></div>
    </div>
</div>

demo
需要一条xpath获取他们的名字,职位,跟机构.

//div[a/span/text() and div/p/text() and div/div/p/a/text()]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值