Derniers tutoriels de développement web
 

Axes XPath


Le XML Exemple de document

Nous utiliserons le document XML suivant dans les exemples ci-dessous.

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="en">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

Axes XPath

Un axe définit un ensemble de noeuds par rapport au noeud courant.

AxisName Résultat
ancêtre Sélectionne tous les ancêtres (parent, grandparent, etc.) - (parent, grandparent, etc.) du noeud courant
ancestor-or-self Sélectionne tous les ancêtres (parent, grandparent, etc.) - (parent, grandparent, etc.) du noeud courant et le noeud courant lui - même
attribut Sélectionne tous les attributs du noeud courant
enfant Sélectionne tous les enfants du noeud courant
descendant Sélectionne tous les descendants (children, grandchildren, etc.) - (children, grandchildren, etc.) du noeud courant
descendant-or-self Sélectionne tous les descendants (children, grandchildren, etc.) - (children, grandchildren, etc.) du noeud courant et le noeud courant lui - même
Suivant Sélectionne tout dans le document après la balise de fermeture du noeud courant
following-sibling Sélectionne tous les frères et soeurs après le noeud courant
espace de noms Sélectionne tous les nœuds d'espace de nommage du noeud courant
parent Sélectionne le parent du noeud courant
précédent Sélectionne tous les nœuds qui apparaissent avant le nœud actuel dans le document, à l'exception des ancêtres, attributs des noeuds et des noeuds d'espace de noms
preceding-sibling Sélectionne tous les frères et soeurs avant le noeud courant
soi Sélectionne le noeud courant

Lieu Expression Path

Un chemin de localisation peut être absolue ou relative.

Un chemin d'accès absolu commence par une barre oblique ( / ) et un chemin d'emplacement relatif ne fonctionne pas. Dans les deux cas, le chemin de localisation consiste en une ou plusieurs étapes, chacune étant séparée par une barre oblique:

An absolute location path:

/step/step/...

A relative location path:

step/step/...

Chaque étape est évalué par rapport à des noeuds dans l'ensemble de noeuds de courant.

Une étape consiste à:

  • un axe (defines the tree-relationship between the selected nodes and the current node)
  • un noeud test (identifies a node within an axis) à l' (identifies a node within an axis) d' (identifies a node within an axis)
  • zéro ou plusieurs prédicats (to further refine the selected node-set) de (to further refine the selected node-set)

La syntaxe d'une étape de localisation est:

axisname::nodetest[predicate]

Exemples

Exemple Résultat
enfant :: livre Sélectionne tous les nœuds de livres qui sont des enfants du noeud courant
attribute :: lang Sélectionne le lang attribut du noeud courant
enfant::* Sélectionne tous les éléments enfants du noeud courant
attribut::* Sélectionne tous les attributs du noeud courant
child :: text() Sélectionne tous les enfants de noeud texte du noeud courant
enfant :: node() Sélectionne tous les enfants du noeud courant
descendant :: livre Sélectionne tous les descendants du livre du noeud courant
ancêtre :: livre Sélectionne tous les ancêtres du livre du noeud courant
ancêtre ou self :: livre Sélectionne tous les ancêtres du livre du noeud courant - et le courant ainsi si elle est un nœud de livre
child :: * / enfant :: prix Sélectionne tous les petits-enfants des prix du noeud courant