1. Introduction, notion de nœud XML
Comme nous l'avons vu, des machines, des systèmes et des applications s'échangent des volumes de données parfois très importants en XML. Nous avons vu deux approches pour lire et analyser ces documents : DOM et SAX. L'avantage de SAX est qu'il ne nécessite pas de recréer un modèle objet en mémoire pour transférer les informations se trouvant dans un document XML, dans une application Java (ou autre d'ailleurs), sous forme d'un graphe d'objets.
XPath consistue une troisième façon d'accèder à ces informations. XPath est un langage simple, permettant d'écrire des requêtes sur un document XML. Techniquement, une requête est une chaîne de caractères, dont l'application sur un document XML permet de sélectionner un ensemble d'éléments.
XPath a donc besoin d'un moteur pour fonctionner, qui puisse prendre une requête en entrée, et retourner l'ensemble de nœuds solution de cette requête. XPath est un standard du W3C, implémenté par différentes API dans de nombreux langages. Nous allons utiliser l'implémentation proposée par Dom4J pour nos exemples.
Nous allons largement utiliser la notion de nœud XML dans la suite de ce chapitre, rappelons ici de quoi il s'agit dans le cas d'un document XML. Un nœud XML est toute chose que l'on peut trouver dans un DOM (Document Object Model) XML. Rappelons ici les principaux nœuds que nous avons vu :
-
les attributs ;
-
les éléments, dont l'élément racine et ses sous-éléments ;
-
le contenu textuel ;
-
les commentaires ;
-
le
document type
, pour la déclaration de la DTD.