这是HTML代码:
<table id="laptop_detail" class="table">
<tbody>
<tr>
<td style="padding-left:36px" class="ha"> Camera Pixels </td>
<td class="val">8 megapixel camera</td>
</tr>
</tbody>
</table>
我如何只获得chrome中第一个“8”的字符?到目前为止,我的方法是:
$x('//*[@id="laptop_detail"]//tr/td[contains(. ,"Camera")]/following-sibling::td[1]/text()[substring(. , 0, 2)]')
答案 0 :(得分:1)
不要将输出所需的函数放入谓词中,而是将其应用于节点:
substring(//*[@id="laptop_detail"]//tr/td[contains(., "Camera")]/following-sibling::td[1], 1, 1)
请注意,在XPath中,字符串中的字符从1开始编号,而不是0。
此外,您不需要指定text()
,substring
知道它应该对字符串进行操作。
substring-before(..., ' ')
会更好吗?