UNIVERSITE CHOUAIB DOUKKALI Facult des sciences Dpartement des
UNIVERSITE CHOUAIB DOUKKALI Faculté des sciences Département des mathématiques Et informatiques ELJADIDA XML / XPATH Réalisé par: ZINEB KHATTABY HANANE SAHNOUNE Pr: Année universitaire: Mr. Ali El. HORE 2012/2013
Sommaire v Rappel sur document XML v Introduction à XPath v Qu’est ce que Xpath? v Requêtes Xpath Ø Sélection Ø Condition Ø Quelques exemples des fonctions de Xpath v Environnement requis v Exemple de mise en œuvre
Rappel sur XML ► Le Xml (Extensible Markaup Language, « langage de balisage extensible » ) est un langage informatique de balisage générique qui dérive de SGML. ► En pratique, un fichier XML est un simple fichier texte, contenant des balises. La particularité de XML est qu'aucune balise n'est prédéfinie : c'est au concepteur de définir les balises qui ont du sens pour lui.
Exemple d’un fichier XML <? xml version="1. 0" encoding="UTF-8"? > <etudiants> <etudiant id="1"> <nom> Sahnoune</nom> <Prenom> Hanane </Prenom> <date-ins> 20010 </date-ins> </etudiant> <etudiant id="2"> <nom> Khattaby </nom> <Prenom> Zineb </Prenom> <date-ins> 20010 </etudiant> </etudiants> </date-ins>
Introduction à XPath permet de parcourir un fichier XML d'une façon à la fois simple et puissante. De la sorte, en peu de temps, un développeur peut rapidement et aisément extraire les informations qui l'intéressent, même dans un document qui en comporte bien plus. On peut par exemple : Ø récupérer le contenu d'une balise précise Ø récupérer du contenu en fonction de la valeur d'un attribut d'une balise Ø récupérer un ensemble de balises avec leur contenu et les parcourir
Qu’est ce qu’un XPath ► XPath est un langage avec une syntaxe non XML, permettant d'adresser les différents nœuds ou groupes de nœuds particuliers d'un document XML. ► XPath voit le document XML comme un arbre de nœuds, qu'il permet de parcourir selon des axes (fils, parent, ancêtre, descendant, . . . ) et en sélectionnant les nœuds par leur nom.
Requêtes XPath
Sélection élément-attributs ’’/’’ v /nom : sélectionne tous les éléments enfants de l’élément « nom » v /* : sélectionne tous les éléments-enfants de type élément du contexte actuel v /book/@price" sélectionne tous les attributs price des éléments book
Condition [ ] v /*/etudiant[nom=‘Mohamed’]: sélectionne tous les éléments du document ayant un élément enfant nommé nom peu importe la valeur de ce dernier. v /etudiant[date-ins = ‘ 2010']: sélectionne tous les éléments du document ayant un élément enfant nommé date-ins dont la valeur est exactement 2010. v /nom[1] sélectionne uniquement le premier élément nom parmi les éléments se nommant nom dans un document XML. v /etudiants[@id != ‘ 1']/etudiant : sélectionne tous les éléments etudiant pour lesquels la valeur de l'attribut id de leur élément parent etudiant est différente de 1.
Quelques exemples des fonctions de XPath v Count() : calcule le nombre des éléments qui ont un condition en commun /*[count(BBB)=2] v Sum() : retourne la somme, pour tous les éléments de l'ensemble passé en argument, du résultat de la conversion en numérique de leur valeur textuelle. Sum(/Root/BBB) v Name() : Elle retourne une chaîne contenant le nom passé en argument /*[name()=‘BBB']
Environnement requis Les librairies utilisées sont JDom et Jaxen. Voici les jars nécessaires: v jdom. jar : définition des interfaces v jaxen-core. jar : pour le parsing v jaxen-jdom. jar : implémentation d'XPath v saxpath. jar : pour construire le fichier Dom
Exemple de mise en œuvre
<? xml version="1. 0" encoding="UTF 8"? > <etudiants> Fichier xml: <etudiant id="1"> <nom> Sahnoune</nom> <Prenom> Hanane </Prenom> <annee-ins> 2010</annee-ins> etudiants. xm l </etudiant> <etudiant id="2"> <nom> Khattaby </nom> <Prenom> Zineb </Prenom> <annee-ins> 2010</annee-ins> </etudiant> <nbreetudiant> 3 </nbreetudiant> </etudiants>
import java. io. *; import org. jdom. input. *; import org. w 3 c. dom. Node. List; import javax. xml. xpath. *; public class Etudiants { XPath xpath = XPath. Factory. new. Instance(). new. XPat h(); XPath. Expression requet = xpath. compile("/etudiants/etudiant[@ id='1']/nom"); System. out. println("Selectionner le nom de l'etudiant qui a comme identifant 1"); Fichier etudiants. java public static void main(String[] args) Object result = static org. jdom. Document document; throws XPath. Expression. Exception { SAXBuilder sxb = new SAXBuilder(); try { document = sxb. build(new File("etudiant. xml")); } catch(Exception e){} requet. evaluate(document, XPath. Constants. NODESET); Node. List nodes = (Node. List) result; for (int i = 0; i < nodes. get. Length(); i++) { System. out. println(nodes. item(i). get. Node. Name()); }}}
Conclusion la technologie XPath permet d’effectuer des requêtes dans un document XML. XPath est aux documents XML, ce qu’est SQL aux bases de données. cette technologie est intégrée sur d'autres plateformes telles que Java.
Merci pour votre attention
- Slides: 16