160 likes | 354 Views
XML / XPATH. Réalisé par: ZINEB KHATTABY HANANE SAHNOUNE. Pr: Mr . Ali ElHORE. UNIVERSITE CHOUAIB DOUKKALI Faculté des sciences Département des mathématiques Et informatiques ELJADIDA. A nnée universitaire: 2012/2013. Sommaire. Rappel sur document XML
E N D
XML / XPATH Réalisé par: ZINEB KHATTABY HANANE SAHNOUNE Pr: Mr. Ali ElHORE UNIVERSITE CHOUAIB DOUKKALI Faculté des sciences Département des mathématiques Et informatiques ELJADIDA Année universitaire: 2012/2013
Sommaire • Rappel sur document XML • Introduction à XPath • Qu’est ce que Xpath? • RequêtesXpath • Sélection • Condition • Quelques exemples des fonctions de Xpath • Environnement requis • Exemple de mise en œuvre
Rappel sur XML ►Le Xml (Extensible MarkaupLanguage, « 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 </date-ins> </etudiant> </etudiants>
Introduction à XPath 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 ►XPathest 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.
Sélection élément-attributs ’’/’’ • /nom : sélectionne tous les éléments enfants de l’élément « nom » • /* : sélectionne tous les éléments-enfants de type élément du contexte actuel • /book/@price" sélectionne tous les attributs pricedes éléments book
Condition [ ] • /*/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. • /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. • /nom[1] sélectionne uniquement le premier élément nom parmi les éléments se nommant nom dans un document XML. • /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 • Count() : calcule le nombre des éléments qui ont un condition en commun /*[count(BBB)=2] • 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) • 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: • jdom.jar : définition des interfaces • jaxen-core.jar : pour le parsing • jaxen-jdom.jar : implémentation d'XPath • saxpath.jar : pour construire le fichier Dom
Fichier xml:etudiants.xml <?xml version="1.0" encoding="UTF-8"?> <etudiants> <etudiant id="1"> <nom> Sahnoune</nom> <Prenom> Hanane </Prenom> <annee-ins> 2010</annee-ins> </etudiant> <etudiant id="2"> <nom> Khattaby </nom> <Prenom> Zineb </Prenom> <annee-ins> 2010</annee-ins> </etudiant> <nbreetudiant> 3 </nbreetudiant> </etudiants>
XPathxpath = XPathFactory.newInstance().newXPath();XPathExpressionrequet = xpath.compile("/etudiants/etudiant[@id='1']/nom");System.out.println("Selectionner le nom de l'etudiant qui a comme identifant 1"); Object result = requet.evaluate(document, XPathConstants.NODESET);NodeListnodes = (NodeList) result;for (int i = 0; i < nodes.getLength(); i++) {System.out.println(nodes.item(i).getNodeName()); }}} import java.io.*; import org.jdom.*; import org.jdom.input.*; import org.w3c.dom.NodeList; import javax.xml.xpath.*; public class Etudiants { staticorg.jdom.Documentdocument; public static void main(String[] args) throws XPathExpressionException{ SAXBuildersxb = new SAXBuilder(); try { document = sxb.build(new File("etudiant.xml")); } catch(Exception e){} Fichier etudiants.java
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.