Html xpath返回不带';根本不包含某个节点
我正在使用xpath定位html标记。我有一个有5行的表,我想根据表行中一些表数据标记中的类来选择行Html xpath返回不带';根本不包含某个节点,html,xml,xpath,Html,Xml,Xpath,我正在使用xpath定位html标记。我有一个有5行的表,我想根据表行中一些表数据标记中的类来选择行 <table class="layoutDataDefinitionTable grid-row-table"> <thead/> <tbody> <tr id="row_0"/> <td data-dojo-attach-point="_iconNode"/>
<table class="layoutDataDefinitionTable grid-row-table">
<thead/>
<tbody>
<tr id="row_0"/>
<td data-dojo-attach-point="_iconNode"/>
<td class="dgrid-cell-padding dgrid-no-left"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<tr id="row_1">
<td data-dojo-attach-point="_iconNode" class="arrowDown"/>
<td class="dgrid-cell-padding dgrid-no-left"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<tr id="row_2">
<td data-dojo-attach-point="_iconNode"/>
<td class="dgrid-cell-padding dgrid-no-left dgrid-cell-indent"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<tr id="row_3">
<td data-dojo-attach-point="_iconNode" class="arrowDown"/>
<td class="dgrid-cell-padding dgrid-no-left"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<tr id="row_4">
<td data-dojo-attach-point="_iconNode" class="arrowDown"/>
<td class="dgrid-cell-padding dgrid-no-left"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
<td class="dgrid-cell-padding"/>
</tbody>
</table>
但这只是返回所有的行,因为每一行都有一个td,它不包含这两个类。我只希望它返回第0行。您可以将谓词移动到
tr
,并检查所有td
子级,查看它们是否都满足不包含所需类的条件:
//表[contains(@class,'layoutDataDefinitionTable grid row table')]/tbody/tr[not(contains(td/@class,'dgrid cell padding dgrid no left dgrid cell indent'))和not(contains(td/@class,'arrowDown'))]
这将只返回id为0行的
tr
,您可以将谓词移动到tr
,并检查所有td
子级,查看它们是否都满足不包含所需类的条件:
//表[contains(@class,'layoutDataDefinitionTable grid row table')]/tbody/tr[not(contains(td/@class,'dgrid cell padding dgrid no left dgrid cell indent'))和not(contains(td/@class,'arrowDown'))]
这将仅返回id为第0行的tr
$x("//table[contains(@class, 'layoutDataDefinitionTable grid-row-table')]//tbody//tr//td[not(contains(@class, 'dgrid-cell dgrid-cell-padding dgrid-no-left dgrid-cell-indent')) and not(contains(@class, 'arrowDown'))]/..");