Rechercher un nœud ou un ensemble de nœuds avec XPath dans un arbre DOM

Problème

Vous avez un arbre DOM en mémoire et voulez rechercher un nœud ou un ensemble de nœuds correspondant à un critère.

Solution

Utilisez xmlXPathNewContext() pour créer un contexte XPath et utilisez ce contexte avec xmlXPathEval() pour effectuer les requêtes.

Discussion

Avant d’utiliser les fonctions XPath, il est nécessaire d’effectuer un appel à xmlXPathInit() qui ne prend pas d’argument et ne renvoie rien. Cet appel initialise l’environnement XPath.

Ensuite, il faut initialiser le contexte XPath avec xmlXPathNewContext() qui est propre à chaque arbre DOM. Puis nous pouvons effectuer des requêtes XPath avec xmlXPathEval() en fournissant le chemin XPath et le contexte à cette fonction. Cette dernière fonction renvoie un objet de type xmlXPathObjectPtr, dont le champ type est XPATH_NODESET et qui contient un tableau dont les éléments sont les nœuds trouvés. L’exemple suivant, qui recherche le nom de l’objet numéro 31 du catalogue de Messier, illustre comment utiliser ce tableau. La mémoire utilisée par l’objet xmlXPathObjectPtr est à libérer avec xmlXPathFreeObject() et le contexte avec xmlXPathFreeContext().


xmlXPathInit (); 
  xmlcontext = xmlXPathNewContext (xmldoc); 
 
/* Construction d'une liste de noeuds à partir de la requête XPATH. */ 
  xmlobject = ...
Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Parcourir un arbre DOM
Suivant
Créer et utiliser un fichier de configuration en XML