J'ai un document HTML que je dois saisir tous table
éléments de la table
qui sont la 5ème table au fond du DOM
, pour ne pas être confondu avec la 5ème table
enfant. Mon problème est que cette structure profonde de 5 table
peut être encapsulée dans un nombre quelconque d’éléments div
, je ne peux donc pas utiliser un chemin absolu tel que
/ html / body / table / tbody / tr / td / table / tbody / tr / td / table / tbody / tr / td / table / tbody / tr / td / table
Par exemple:
<body>
<table>
<table>
<table>
<table>
<!--Grab this one -->
<table>
</table>
</table>
</table>
</table>
</table>
</body>
Ou ca:
<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>
Utiliser :
(//table[count(ancestor::table) = 4])[1]
Ceci sélectionne la première table
du document qui a exactement quatre ancêtres nommés table
.
Je crois que vous voudriez que la //
expression entre chaque élément donne la pleine expression:
//table//table//table//table//table
Ceci sélectionnera n'importe quelle table ayant 4 tables n'importe où dans son chemin