J'ai un document XHTML, et je veux sélectionner la seule table avec class = "index". Si je comprends bien, l'axe descendant sélectionnera tous les nœuds directement et indirectement en descendant du nœud actuel, alors voici ce que j'ai.Sélection d'une table spécifique avec XPath
//descendant::table[@class="index"]
Il ne semble pas fonctionner lorsqu'il est testé avec xmlstarlet. Mon outil est-il cassé ou l'expression XPath est-elle incorrecte?
Si vous entrez postez exemple, nous pourrions savoir à coup sûr si l'outil est cassé. (Par exemple, vous devez peut-être utiliser un préfixe d'espace de nom.) Une note rapide, // descendant :: est redondante. Dans ce cas, utilisez soit/descendant :: table (juste une barre oblique) ou simplement // table. "//" est un raccourci pour "/ descendant-or-self :: node() /" –
metacritic.com/film/highscores.shtml est un exemple, mais il doit être passé par Tidy et d'autres réglages avant qu'il ne soit XSLT prêt. – jldugger
Les réglages incluent-ils l'ajout de la déclaration d'espace de noms XHTML? Dans XPath, vous devez déclarer l'espace de noms (et utiliser un préfixe dans votre expression) si vous souhaitez sélectionner des nœuds par nom qui utilisent un espace de noms. –