这是我的HTML代码:
<table id="laptop_detail" class="table">
<tr>
<td style="padding-left:18px" class="ha">Touchscreen</td>
<td class="val"><span class="no_icon">No</span></td>
</tr>
<tr>
<td style="padding-left:18px" class="ha">Water Dispenser</td>
<td class="val"><span class="no_icon">No</span></td>
</tr>
<tr>
<td style="padding-left:18px" class="ha">Colour / Material</td>
<td class="val">Grey</td>
</tr>
</table>
这是我的xpath:
$x('//*[@id="laptop_detail"]//tr/td[contains(. ,"Touchscreen")]/following-sibling::td[1]/span/text() and //*[@id="laptop_detail"]//tr/td[contains(. ,"Water Dispenser")]/following-sibling::td[1]/span/text() and //*[@id="laptop_detail"]//tr/td[contains(. ,"Colour")]/following-sibling::td[1]/text()')
但我的xpath返回&#34; true&#34;而不是我的要求&#34;不,不,格雷&#34;。我知道我的xpath有问题,但我无法理解。
编辑:好的,我取得了一点成功,我得到了#34;不,不,&#34;使用这个xpath:
$x('//*[@id="laptop_detail"]//tr/td[contains(. ,"Touchscreen") or contains(. ,"Water")]/following-sibling::td[1]/span/text()')
但无法得到&#34;格雷&#34;因为该值不在span标记内。
答案 0 :(得分:0)
以下是您的解决方案的修复程序(我添加了|运算符):
//*[@id="laptop_detail"]/tr/td[contains(. ,"Touchscreen") or contains(. ,"Water")]/following-sibling::td[1]/span/text() | //*[@id="laptop_detail"]/tr/td[contains(. ,"Colour / Material")]/following-sibling::td[1]/text()
如果你的逻辑可以接受,你可以使用更简单的语法(运行得更快)。
/table[@id="laptop_detail"]/tr/td[@class='val']/span/text() | /table[@id="laptop_detail"]/tr/td[@class='val']/text()