XPath intensif

Les tests de nœud

Les tests de noeud disponible en XPath

Ce chapitre est basé directement sur la recommandation W3C concernant XPath, disponible ici.

test de nom

Définitiontest de nom

Le test de nom est le test de nœud le plus courant. Pour 90% des étudiants présent il est même possible d'affirmer que vous n'avez jamais fait d'expression XPath sans utiliser ce test.

Le test de nom est celui que vous utilisez quand vous spécifiez le nom d'une balise.

Exemple

On reprend ici le premier exemple de la section sur les axes

CTRL+C pour copier, CTRL+V pour coller
1
/biblio/livre/titre
/biblio/livre/titre

Renvoi :

CTRL+C pour copier, CTRL+V pour coller
1
<titre lang="fr">Harry Potter</titre>
2
<titre lang="fr">Apprendre XML</titre>
<titre lang="fr">Harry Potter</titre>
<titre lang="fr">Apprendre XML</titre>

Vous avez ici utilisé 3 tests de nom pour progresser dans la structure du document

text()

Définitiontest de nœud texte

En plus du test de nom nous avons aussi utilisé un autre type de test de nœud dans l'exemple précédent, il s'agit du test de nœud text()

Ce test permet de sélectionner le texte contenu dans une balise. Plus précisément il sélectionne les nœuds de type text()

Exemple

On reprend ici à nouveau le premier exemple de la section sur les axes

CTRL+C pour copier, CTRL+V pour coller
1
/biblio/livre/titre/text()
/biblio/livre/titre/text()

Renvoi :

CTRL+C pour copier, CTRL+V pour coller
1
Harry Potter
2
Apprendre XML
Harry Potter
Apprendre XML

comment()

Définitiontest de nœud commentaire

Il est possible d'accéder aux commentaires présents dans un document XML. Pour cela, on utilise le test de nœud comment()

Exemple

CTRL+C pour copier, CTRL+V pour coller
1
//comment()
//comment()

Renvoi :

CTRL+C pour copier, CTRL+V pour coller
1
<!-- pas donné! -->
<!-- pas donné! -->

node()

Définitiontest de nœud quelconque

Il existe aussi un "non test" de nœud, renvoyant simplement tout les nœuds disponibles. C'est le test de nœud node()

Exemple

CTRL+C pour copier, CTRL+V pour coller
1
/biblio/livre/node()
/biblio/livre/node()

Renvoi :

CTRL+C pour copier, CTRL+V pour coller
1
\n\t\t
2
<titre lang="fr">Harry Potter</titre>
3
\n\t\t
4
<prix>29.99</prix>
5
\n\t
6
\n\t\t
7
<titre lang="fr">Apprendre XML</titre>
8
\n\t\t
9
<prix>39.95</prix>
10
\n\t\t
11
 <!-- pas donné! -->
12
\n\t\t
13
\n\t
\n\t\t
<titre lang="fr">Harry Potter</titre>
\n\t\t
<prix>29.99</prix>
\n\t
\n\t\t
<titre lang="fr">Apprendre XML</titre>
\n\t\t
<prix>39.95</prix>
\n\t\t
 <!-- pas donné! -->
\n\t\t
\n\t

Notez que vous avez 3 types de nœuds ici :

  • Les nœuds d'éléments, auxquels on accède en général avec un test de nom

  • Les nœuds de texte, auxquels on accède avec le test text()

  • Les nœuds de commentaire, auxquels on accède avec le test comment()

Il en existe un 4ème qui constitue le dernier type de nœud constitutif du langage XML qui possède lui aussi son test.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Version 2 Alexandre THOUVENIN, 2016. Version 1 de Jean-Baptiste Martin, 2015 (Contributions : Stéphane Crozat, les étudiants de NF29) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)