Seleziona il Nodo figlio n. Nel documento HTML

c# html html-agility-pack xpath

Domanda

Ho un documento html che ho bisogno di afferrare tutti gli elementi della table che sono la quinta tabella in profondità nel DOM , da non confondere con la quinta table figlio. Il mio problema è che questa struttura profonda di 5 table potrebbe essere racchiusa in un numero qualsiasi di elementi div modo da non poter utilizzare un percorso assoluto come

/ Html / body / table / tbody / tr / td / table / tbody / tr / td / table / tbody / tr / td / table / tbody / tr / td / table

Per esempio:

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

O questo:

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

Risposta accettata

Usa :

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

Questo seleziona la prima table nel documento che ha esattamente quattro antenati denominati table .


Risposta popolare

Credo che tu voglia l'espressione // tra ogni elemento, rendendo l'espressione completa:

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

Questo selezionerà qualsiasi tabella che ha 4 tabelle in qualsiasi punto del suo percorso




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché