Qu'est-ce que XPath et à quoi ça sert ?
XPath (XML Path Language) est un langage de requête permettant de naviguer dans la structure arborescente d'un document XML ou HTML. Il permet de sélectionner des noeuds (éléments, attributs, texte) en utilisant des expressions de chemin similaires aux chemins de fichiers. Par exemple, //div[@class="article"]/h2 sélectionne tous les titrès h2 à l'intérieur d'un div ayant la classe "article". XPath est utilisé dans de nombreux contextes : web scraping, transformations XSLT, tests automatisés avec Selenium, parsing de flux RSS/XML, et requêtes dans les bases de données XML.
Syntaxe XPath essentielle
Les expressions XPath les plus courantes utilisent quelques axes principaux : / pour un enfant direct, // pour un descendant à n'importe quel niveau, . pour le noeud courant, .. pour le noeud parent. Les prédicats entre crochets filtrent les résultats : [1] pour le premier élément, [@id="menu"] pour un attribut spécifique, [contains(text(), "prix")] pour un texte contenant un mot. Les fonctions comme text(), position(), last(), count(), normalize-space() et string-length() permettent des sélections avancées. La maîtrise de ces bases couvre 90% des cas d'utilisation.
XPath vs CSS Selectors : quand utiliser lequel ?
Les sélecteurs CSS sont plus simples pour les cas basiques (sélectionner par classe, ID, type d'élément) et sont natifs dans le navigateur via querySelectorAll. XPath est plus puissant pour les cas avancés : remonter vers un parent (impossible en CSS), sélectionner par contenu textuel, combiner plusieurs conditions complexes, ou naviguer sur des axes comme preceding-sibling et following-sibling. Pour le web scraping, XPath est souvent préféré car il offre plus de flexibilité. Pour le développement front-end, les sélecteurs CSS sont généralement suffisants et plus performants.