|  | 
 
			
				| XPath - Tests sur les noeuds |  
 Nous avons vu que la spécification 
        d'un chemin de localisation se faisait en trois étapes. L'application 
        de prédicats est facultative mais deux autres étapes sont 
        obligatoires. La syntaxe minimale est la suivante : axe::test_noeud 
							
            	| En reprenant l'exemple précédent 
              et le même noeud contexte E, 
              l'expression 
 /Idésigne le noeud de type I, enfant du noeud contexte. Cette 
              écriture est en fait un raccourci pour ce qui devrait s'écrire 
              en toute rigueur : /child::ILa partie à gauche du symbole :: 
              correspond à l'axe; la partie droite précise un test sur 
              le type de noeud (nodetest). Relativement 
              à E, si l'on veut sélectionner 
              tous les noeuds enfants (pas seulement les noeuds de type I), 
              on écrira : /child::*La notation synthétique étant beaucoup plus employée 
              que sa forme développée, on a souvent tendance à 
              perdre de vue la partie nodetest. Par exemple, l'ecriture ci-dessous, E1/E2/*//Ei/ 
                ... /Enest en fait une contraction de : child::E1/child::E2/child::*/descendant::Ei/ 
                ... /child::EnSur l'exemple ci-contre, l'expression /I/N/Pest une contraction de : /child::I/child::N/child::P |  |  
			
				
            | Reprenons la même structure d'arbre en changeant 
              le type des noeuds descendant de I 
              et en gardant E comme noeud contexte : |  
					|  |  | Les noeuds en orange représentent le nodeset 
              sélectionné par les expressions ci-dessous : |  
					|  |  | /child::I/child::*ou, sous forme contractée : /I/*  les enfants du noeud I, lui-même enfant 
                du noeud contexte E
 |  | /child::I/child::You, sous forme contractée : /I/Y  les noeuds de type Y, enfants du noeud I, 
                lui-même enfant du noeud contexte E
 |  
					|  |  | /child::I/descendant::*ou, sous forme contractée : /I//*  les descendants du noeud I, lui-même 
                enfant du noeud contexte E
 |  | /child::I/descendant::You, sous forme contractée : /I//Y  les noeuds de type Y, descendants du noeud 
                I, lui-même enfant du noeud contexte E
 |  
				Le nodetest permet également de restreindre le nodeset 
        aux commentaires ::comment() , aux noeuds 
        textes ::text()  , 
        etc. 
		
       |  |