xpath选择特定节点的以下节点
基于此HTML:xpath选择特定节点的以下节点,xpath,Xpath,基于此HTML: < table width='300' ......> <tbody> < tr> < td class = 'wcheader1'> ..... </td> < /tr> < tr> < td class = 'wccontnetbox'>......< /td> < /tr> < tr> < td
< table width='300' ......>
<tbody>
< tr>
< td class = 'wcheader1'> ..... </td>
< /tr>
< tr>
< td class = 'wccontnetbox'>......< /td>
< /tr>
< tr>
< td class = 'wccontnetbox'>......< /td>
< /tr>
< tr>
< td class = 'wcheader1'> ..... </td>
< /tr>
< tr>
< td class = 'wccontnetbox'>......< /td>
< /tr>
< tr>
< td class = 'wccontnetbox'>......< /td>
< /tr>
< tr>
< td class = 'wcheader1'> ..... </td>
< /tr>
< tr>
< td class = 'wccontnetbox'>......< /td>
< /tr>
< tr>
< td class = 'wccontnetbox'>......< /td>
< /tr>
</tbody>
</table>
。。。。。
..
..
。。。。。
..
..
。。。。。
..
..
在第一个
元素之后,我无法仅选择前两个
元素。是否有XPath表达式来执行此操作
更新:这些元素是动态的。使用以下表达式选择第一个wcheader1
之后的前两个wccontnetbox
元素:
//table/tbody/tr[td[@class='wcheader1']][2]/
following-sibling::tr[td[@class='wccontnetbox']][position()<3]/td
注意:第二个表达式使用Kayessian节点集交点公式。通常,使用以下表达式查找$set1
和$set2
的交点:
$set1[count(.|$set2)=count($set2)]
@NouNou-编辑回答。我不能使用[position()<3],因为这些元素是动态的。有时4,有时6…@NouNou-动态是什么意思?您要求在第一个wcheader1
之后输入前两个wccontnetbox
元素,这就是返回的结果,无论文档的总体位置如何。我的意思是这些元素的计数是动态的。例如:在我希望从中获取数据的网站的某些网页中,计数是5,而某些网页的计数是8,依此类推。很抱歉,我的英语不好。是否有一个表达式可以在第一个和第二个元素之间选择元素,而不管这些元素的计数是多少元素?
$set1[count(.|$set2)=count($set2)]