在这个例子中我有这个代码:
<table class="basicinfo" cellspacing="0">
<tr class="header">
<td colspan="3">
<div>
<h2 class="prod_card">Basic info</h2>
</div>
</td>
</tr>
<tr class="row2 item">
<td class="cell0">
<div>
Year
</div>
</td>
<td class="cell1">
<div>
2005
</div>
</td>
</tr>
<tr class="row3 item alt">
<td class="cell0">
<div>
Extra
</div>
</td>
<td class="cell1">
<div>
-
</div>
</td>
</tr>
</table>
现在,我想得到(例如)year
。我试图在div
内容div
之后获取下一个Year
内容。
我使用此xpath但没有成功:
//div[preceding-sibling::div = 'Year']
有谁知道一个好的网站开始学习xpath?提前谢谢!
答案 0 :(得分:0)
关注XPath
//div[parent::td/preceding-sibling::td//div[normalize-space()= 'Year']]
有结果
<div>2005</div>
您的XPath无效,因为您要查找的div
个div
元素不是preceding-sibling
而td
的{{1}}不是parent
。此preceding-sibling::td
的{{1}}包含一个div,其中包含文字“Year” - td
。使用td//div
将返回此normalize-space()
的文本,而不检查相等性时可能需要的任何空格。
供参考:normalize-space(),并且当您要求提供良好的资源时 - 我不想推荐任何特别的内容,但您应该查看stackoverflow上给出的信息中提到的资源:{{ 3}}(如果尚未完成),对于XPath轴,这是一个很好的可视化:https://stackoverflow.com/tags/xpath/info