假设我有一个像这样的html结构 - > (注意:在我的代码中没有ID,我只是把它们放在这里,这样更容易解释)
<body>
<table id=a>
<tr>
<td>
<table id=b>
<tr>
<td>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table id=c>
<tr>
<td>
</td>
</tr>
</table>
</body>
使用XPath,//body/table[1]
为我提供了内容表,其id为“b”,但我真正想要的是它的第一个孩子(“c”)。 $("body >table").eq(1)
的某些内容,但我正在使用c#。我如何使用XPath做到这一点?
TNX!
编辑: 我不能选择[2]元素,因为这只是我正在解决的问题的简单解释......
的Andrej
答案 0 :(得分:1)
元素选择器从索引1开始(而不是从0开始)。因此,您必须使用xpath查询//body/table[2]
以下是屏幕截图的说明。
对于基于0的索引节点将为null;
但是由于索引以1开头,因此对于第1和第2个,将返回这些节点
还是不相信?我们来检查内部表元素。
首先让我们检查基于0的索引(再次它将为空)
但是当索引为1时,它将返回正确的节点
答案 1 :(得分:0)
尝试
//body/table[not(ancestor::td)]