0

私がこのようなhtml構造を持っているとしましょう->(注:私のコードにはIDがありません。説明しやすいようにここに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] 要素を選択するオプションはありません。これは、私が抱えている問題の簡単な説明にすぎないためです...

アンドレイ

4

2 に答える 2

1

要素セレクターはインデックス 1 から始まります (0 からではありません)。したがって、xpath クエリを使用する必要があります。//body/table[2]

スクリーンショット付きの解説はこちら。

0 ベースのインデックス ノードの場合は null になります。

ここに画像の説明を入力

ただし、インデックスは 1 で始まるため、インデックス 1 と 2 の場合、これらのノードが返されます。

ここに画像の説明を入力

ここに画像の説明を入力

まだ納得できませんか?内側のテーブル要素を確認しましょう。

まず、0 ベースのインデックスで確認してみましょう (これも null になります)。

ここに画像の説明を入力

ただし、インデックスが 1 の場合、正しいノードが返されます

ここに画像の説明を入力

于 2012-06-18T07:37:05.117 に答える
0

試す

//body/table[not(ancestor::td)]
于 2012-06-18T05:50:18.640 に答える