xpath得到特定的孩子

时间:2012-06-18 05:34:57

标签: c# xpath

假设我有一个像这样的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

2 个答案:

答案 0 :(得分:1)

元素选择器从索引1开始(而不是从0开始)。因此,您必须使用xpath查询//body/table[2]

以下是屏幕截图的说明。

对于基于0的索引节点将为null;

enter image description here

但是由于索引以1开头,因此对于第1和第2个,将返回这些节点

enter image description here

enter image description here

还是不相信?我们来检查内部表元素。

首先让我们检查基于0的索引(再次它将为空)

enter image description here

但是当索引为1时,它将返回正确的节点

enter image description here

答案 1 :(得分:0)

尝试

//body/table[not(ancestor::td)]
相关问题