Tests de nom
Un test de nom est la forme la plus répandue de test de nœud, car il vous permet de spécifier de manière explicite le nom des nœuds à sélectionner. Toutefois, spécifier uniquement un nom de nœud ne permet pas automatiquement de sélectionner le nœud approprié étant donné qu'une arborescence de document peut avoir différents types de nœuds dont le nom est identique. Pour sélectionner le nœud approprié, un test de nom sélectionne uniquement les nœuds dont le nom correspond au nom spécifié et dont le type de nœud correspond au type de nœud principal de l'axe spécifié.
Le tableau suivant reprend le type de nœud principal de divers axes.
Axe | Type de nœud principal |
---|---|
Tout autre axe que |
element |
attribute |
attribute |
namespace |
namespace |
Le nom spécifié dans un test de nom peut être de l'un des trois types suivants : un astérisque (*), un QName ou l'expression NCName:*
. Le tableau suivant montre des exemples de la manière dont chacun de ces types de noms fonctionne en combinaison avec l'axe spécifié pour rechercher une collection de nœuds particulière.
Nom | Retourne | Exemple |
---|---|---|
* (astérisque) |
True pour chaque nœud du type de nœud principal. |
|
QName |
True pour un nœud du type de nœud principal dont le nom développé est identique au nom développé spécifié par le nom qualifié (QName). |
|
NCName:* |
True pour chaque nœud du type principal dont le nom développé comprend l'URI d'espace de noms auquel s'étend le NCName, quel que soit le nom local. |
|
Notes
Si le test de nœud est un nom qualifié (QName), XPath doit tout d'abord développer le nom qualifié QName en fonction des déclarations d'espaces de noms de contexte du fichier XML. Ce processus de développement est identique à celui des noms d'éléments au niveau des balises de début et de fin, excepté qu'il n'utilise pas l'espace de noms par défaut déclaré à l'aide de xmlns
. Si le nom qualifié (QName) n'a pas de préfixe, XPath recherche les nœuds dont les noms locaux correspondent au nom qualifié (QName) donné et dont l'URI d'espace de noms est null. Une erreur se produit si le préfixe du nom qualifié ne correspond à aucune des déclarations d'espaces de noms du fichier.
Si le test de nœud est NCName:*, XPath développe le NCName de la même manière qu'il développerait le préfixe d'un nom qualifié. De la même manière, une erreur survient si la partie NCName ne correspond à aucun préfixe contenu dans les déclarations d'espaces de noms de contexte du fichier.
Voir aussi
Référence
Tests de nœuds
Tests de type de nœud
Tests d'instructions de traitement ciblées