HTML文書でN番目の子ノードを選択

c# html html-agility-pack xpath

質問

私は、5番目のテーブルであるDOM内のすべてのtable要素を取得する必要があるhtmlドキュメントを持っています.5番目の子tableと混同しないでtable 。私の問題は、この5 table深い構造はdiv要素の任意の数にラップすることができるので、私は絶対パスを使用することはできません

/ html / body / table / tbody / tr / td / table / tbody / tr / td / table / tbody / tr / td / table / tbody / tr / td / table

例えば:

<body>    
    <table>    
        <table>
            <table>
                <table>
                   <!--Grab this one -->
                   <table>
                   </table>
                </table>
            </table>
       </table>
    </table>
</body>

またはこれ:

 <body> 
    <div> <!--Could be wrapped more than just once though -->  
        <table>    
            <table>
                <table>
                    <table>
                       <!--Grab this one -->
                       <table>
                       </table>
                    </table>
                </table>
           </table>
        </table>
    </div>
</body>

受け入れられた回答

使用

(//table[count(ancestor::table) = 4])[1]

これは、 table内の厳密に4つの祖先を持つ文書の最初のtableを選択しtable


人気のある回答

私はあなたが完全な表現を作る、各要素間の//式がほしいと思う:

//table//table//table//table//table

これにより、パス内の任意の場所に4つのテーブルがあるテーブルが選択されます




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ