无法仅选择具有相同名称的多个属性的第一个匹配项?

时间:2015-09-21 18:17:20

标签: html xpath

这是我的HTML代码:

<table id="laptop_detail" class="table">
    <tbody>
        <tr>
            <td style="padding-left:18px" class="ha">Camera Pixels</td>
            <td class="val">8 megapixel camera</td>
        </tr>  
        <tr>
            <td style="padding-left:36px" class="ha">Camera Pixels</td>
            <td class="val">8 megapixel camera</td>
        </tr>  
</tbody>

和我的xpath:

$x('//*[@id="laptop_detail"]//tr/td[contains(., "Camera Pixels")]/following-sibling::td[1]/text()')

我的问题是我无法找到任何只选择一次属性的工作方式。

1 个答案:

答案 0 :(得分:1)

将位于“Camera Pixels”td元素的部分括在括号中:

(//*[@id="laptop_detail"]//tr/td[contains(., "Camera Pixels")])[1]/following-sibling::td

演示:

$ xmllint index.html --xpath '(//*[@id="laptop_detail"]//tr/td[contains(., "Camera Pixels")])[1]/following-sibling::td'
<td class="val">8 megapixel camera</td>