Partager via


Axes

Un chemin de localisation utilise un axe pour spécifier la relation entre les nœuds sélectionnés par l'étape de localisation et le nœud de contexte.

Axes

Description

ancestor::

Ancêtres du nœud de contexte.

Les ancêtres du nœud de contexte sont constitués du parent du nœud de contexte et du parent du parent, etc. Donc, l'axe ancestor:: inclut toujours le nœud racine sauf si le nœud de contexte est le nœud racine.

ancestor-or-self::

Nœud de contexte et ses ancêtres.

L'axe ancestor-or-self:: inclut toujours le nœud racine.

attribute::

Attributs du nœud de contexte.

Cet axe est vide sauf si le nœud de contexte est un élément.

child::

Enfants du nœud de contexte.

Un enfant est un nœud situé immédiatement sous le nœud de contexte dans l'arborescence.Toutefois, ni les nœuds d'attribut ni ceux d'espace de noms ne sont considérés comme des enfants du nœud de contexte.

descendant::

Descendants du nœud de contexte.

Un descendant est un enfant ou un enfant d'un enfant, etc. Donc, l'axe descendant:: n'inclut jamais de nœud d'attribut ou d'espace de noms.

descendant-or-self::

Nœud de contexte et ses descendants.

following::

Tous les nœuds qui suivent le nœud de contexte dans l'arborescence, sauf les nœuds descendants, d'attribut et d'espace de noms.

following-sibling::

Tous les frères suivants du nœud de contexte.

L'axe following-sibling:: identifie uniquement les enfants d'un nœud parent qui apparaissent dans l'arborescence après le nœud de contexte.Cet axe ne comprend pas les autres enfants qui apparaissent avant le nœud de contexte.

Si le nœud de contexte est un nœud d'attribut ou d'espace de noms, l'axe following-sibling:: est vide.

namespace::

Nœuds d'espace de noms du nœud de contexte.

Il existe un nœud d'espace de noms pour chaque espace de noms dans la portée du nœud de contexte.

Cet axe est vide sauf si le nœud de contexte est un élément.

parent::

Le parent du nœud de contexte, le cas échéant.

Le parent est le nœud situé juste avant le nœud de contexte dans l'arborescence.

preceding::

Tous les nœuds qui précèdent le nœud de contexte dans l'arborescence, sauf les nœuds ancêtres, d'attribut et d'espace de noms.

L'une des manières de voir l'axe précédent est de considérer tous les nœuds dont le contenu se produit dans sa totalité avant le début du nœud de contexte.

preceding-sibling::

Tous les frères précédents du nœud de contexte.

L'axe preceding-sibling:: identifie uniquement les enfants d'un nœud parent qui apparaissent dans l'arborescence avant le nœud de contexte.Cet axe ne comprend pas les autres enfants qui apparaissent après le nœud de contexte.

Si le nœud de contexte est un nœud d'attribut ou d'espace de noms, l'axe preceding-sibling:: est vide.

self::

Nœud de contexte uniquement.

Notes

  • namespace
    Chaque élément est associé à une collection de nœuds d'espace de noms, un pour chaque préfixe d'espace de noms dans la portée de l'élément (notamment le préfixe xml, qui est déclaré de manière implicite par la recommandation sur les espaces de noms XML) et un pour l'espace de noms par défaut s'il y en existe un dans la portée de l'élément.L'élément est le parent de chacun de ces nœuds d'espace de noms ; toutefois, un nœud d'espace de noms n'est pas un enfant de ses éléments parents.Les éléments ne partagent jamais de nœuds d'espace de noms : si un nœud d'élément n'est pas le même nœud qu'un autre nœud d'élément, aucun nœud d'espace de noms du nœud d'élément n'est le même nœud que les nœuds d'espace de noms d'un autre nœud d'élément.Cela signifie qu'un élément a un nœud d'espace de noms :

    • pour chaque attribut de l'élément dont le nom commence par xmlns: ;

    • pour chaque attribut d'un élément ancêtre dont le nom commence par xmlns: (sauf si l'élément lui-même ou un ancêtre plus proche redéclare le préfixe) ;

    • pour un attribut xmlns, si l'élément ou un ancêtre possède un attribut xmlns et si la valeur de l'attribut xmlns du plus proche de cet élément n'est pas vide.

L'élément <sample> de l'instance suivante :

<A xmlns="urn:A">
  <B xmlns:test="sample">
    <sample xmlns:sampletest="sampletest"/>
  </B>
</A>

contient les nœuds d'espace de noms suivants :

xmlns="urn:A"
xmlns:test="sample"
xmlns:sampletest="sampletest"

L'élément <sample> de l'instance suivante :

<A xmlns="urn:A">
  <B  xmlns:test="sample">
    <sample xmlns:sampletest="sampletest" xmlns:bar="test"/>
  </B>
</A>

contient les nœuds d'espace de noms suivants :

xmlns:sampletest="sampletest"

xmlns:test="test"

Notes

Un attribut ne déclare pas l'espace de noms par défaut.

Un nœud d'espace de noms possède un nom développé : la partie locale est le préfixe de l'espace de noms (qui est vide si le nœud d'espace de noms est pour l'espace de noms par défaut) ; l'espace de noms URI (Uniform Resource Identifier) est toujours Null.

La valeur de chaîne d'un nœud d'espace de noms est l'URI d'espace de noms lié au préfixe d'espace de noms ; si elle est relative, elle doit être résolue comme un URI d'espace de noms dans un nom développé.

Exemples

following::

Les exemples de l'axe following:: font référence au document d'instance suivant :

<A>
  <B>
    <C>sample</C>
    <C>sample2</C>
  </B>
  <B>
    <C>sample</C>
    <C>sample2</C>
    <D>sample3</D>
  </B>
</A>

Requête

Nœuds retournés

A/B[1]/following::*

A/B[1]/following::node()

preceding::

Les exemples de l'axe preceding:: font référence au document d'instance suivant :

<A>
  <B>
    <C test="sampletest">sample</C>
    <C>sample2</C>
  </B>
  <B>
    <C>sample</C>
    <C>sample2</C>
    <D>sample3</D>
  </B>
</A>

Requête

Nœuds retournés

A/B[2]/preceding::*

following-sibling::

L'exemple de l'axe following-sibling:: fait référence au document d'instance suivant :

<A>
  <B>
    <C test="sampletest">sample</C>
    <C>sample2</C>
  </B>
  <B>
    <C>sample</C>
    <C>sample2</C>
    <D>sample3</D>
  </B>
</A>

Requête

Nœuds retournés

A/B[1]/following-sibling::*

preceding-sibling::

L'exemple de l'axe preceding-sibling:: fait référence au document d'instance suivant :

<A>
  <B>
    <C test="sampletest">sample</C>
    <C>sample2</C>
  </B>
  <B>
    <C>sample</C>
    <C>sample2</C>
    <D>sample3</D>
  </B>
</A>

Requête

Nœuds retournés

A/B[2]/preceding-sibling::*

Voir aussi

Référence

Étapes de localisation

Tests de nœud

Prédicats