Les fonctions XPointers permettent de manipuler des points, intervalles ou positions dans l'arborescence d'un document XML.
XPointer ajoute plusieurs fonctions à celles de XPATH. L'ensemble de ces fonctions doivent être intégrées dans des expressions XPointers.
Voir le document XML qui sert de support aux exemples de cette section.
La fonction range-to détermine un intervalle allant du chemin jusqu'à la position passée en argument.
chemin range-to(jeu_de_positions) xpointer(//logiciel[position()=2]range-to(//logiciel[position()=3]))
Cette expression retourne l'intervalle comprenant le second et le troisième élément <logiciel> dans l'arborescence du document.
La fonction string-range renvoie les positions des chaînes de caractères trouvées dans l'arborescence d'un document XML.
Les deux arguments nombre sont optionnels.
chemin string-range(jeu_de_positions, "chaîne", nombre?, nombre?) xpointer(string-range(//*,'XML Spy',1,3))
Ce pointeur retourne la position des trois premiers caractères de la chaîne de mise en correspondance, soit XML, dans l'élément <nom>XML Spy 3.5</nom>.
La fonction range renvoie un intervalle d'un document XML par rapport aux positions fournies en argument.
chemin range(jeu_de_positions) xpointer(range(//logiciel[1]))
L'ensemble du premier noeud <logiciel> dans l'arborescence du document est sélectionné.
La fonction range-inside retourne un intervalle comprenant les positions passées en argument.
chemin range-inside(jeu_de_positions) xpointer(range-inside(//logiciel[1]))
Dans ce cas, seul les éléments à l'intérieur du premier noeud <logiciel> sont sélectionnés. L'élément contenant ne fait pas parti de l'intervalle retourné.
La fonction start-point donne le point de départ de chacune des positions passées en argument.
chemin start-point(jeu_de_positions) xpointer(start-point(//categorie[@nom='Editeur']))
Ce pointeur retourne le point de début de l'élément <categorie...>...</categorie>, c'est-à-dire le point juste après le marqueur de début et avant le premier élément contenu.
La fonction end-point donne le point de fin de chacune des positions passées en argument.
chemin end-point(jeu_de_positions) xpointer(end-point(//categorie[@nom='Editeur']))
Ce pointeur retourne le point de fin de l'élément <categorie...>...</categorie>, c'est-à-dire le point juste avant le marqueur de fin et après le dernier élément contenu.
La fonction here retourne la position unique du noeud élément contenant la cible de l'expression XPointer.
chemin here() xpointer(//logiciel/nom/string-range(self::*, 'gratuit')/here())
Tout d'abord, le pointeur cible l'élément <nom> dans lequel se trouve la chaîne de caractère gratuit, puis retourne la position du noeud contenant le texte précité.
La fonction origin détermine, à partir d'une expression XPointer, une unique position qui localise l'élément duquel un utilisateur ou un programme a initié la traversée d'un lien.
chemin origin() xpointer(//logiciel/origin())