Document Details

GentlestHydrogen6931

Uploaded by GentlestHydrogen6931

Université Moulay Ismaïl

2024

Pr. Imad Zeroual

Tags

XML XPATH XSLT Technologie

Summary

This document is a presentation on XML, XPath, and XSLT technology, focusing on the basics and syntax. It's part of a course at the Faculté des Sciences et Techniques of the Université Moulay Ismail, and the session is for 2024-2025 academic year.

Full Transcript

Technologie XML Pr. Imad Zeroual Faculté des Sciences et Techniques – Errachidia / 2024-2025 Introduction Informations, Notions. Langage XML Introduction, Arbre XML, Règles de syntaxe. Plan Définition de Type de Document (DTD)...

Technologie XML Pr. Imad Zeroual Faculté des Sciences et Techniques – Errachidia / 2024-2025 Introduction Informations, Notions. Langage XML Introduction, Arbre XML, Règles de syntaxe. Plan Définition de Type de Document (DTD) Définition, Éléments, Attributs, Entités. Schémas XSD Structure de base, Éléments, Attributs, Indicateurs. XPATH & XSLT Langage de requêtage XPath, Feuilles de style XSL. XPATH & XSLT 05 Langage de requêtage XPath, Feuilles de style XSL. XPATH & XSLT C Introduction ‘ Introduction ’ ⊕ La publication de documents XML passe essentiellement par le format final XHTML/HTML. ⊕ Le traitement d’un document XML, en vue de sa publication, nécessite l’apprentissage du langage de requêtage XPath ainsi que de l’ensemble XSL eXtensible Stylesheet Language. Pr. Imad Zeroual 4 XPATH & XSLT C XPATH ‘ XPATH ’ ⊕ XPATH n'est pas un langage de programmation en soit, c’est une technologie qui fournit tout un vocabulaire pour écrire des expressions permettant d'accéder directement aux informations souhaitées sans avoir à parcourir tout l'arbre XML. ⊕ Son but principal est d’exprimer des requêtes pour localiser des parties d’un document XML. ⊕ XPath contient plus de 200 fonctions intégrées. ⊕ Les réponses à ces requêtes seront ensuite introduites dans un Template résultat (souvent en XHTML/HTML) dans les documents XSLT. ⊕ Sa première version XPath 1.0 est devenu une recommandation du W3C le 16 novembre 1999. XPath 3.1 est la dernière version depuis 21 Mars 2017. Pr. Imad Zeroual 5 XPATH & XSLT C XPATH ‘Syntaxe XPath’ ⊕ Le parent d'un nœud est le nœud qui est directement au dessus de lui d'un point de vue hiérarchique. Chaque nœud a au moins un parent. ⊕ Un nœud a pour enfants tous les nœuds situés un niveau en dessous dans la hiérarchie. Un nœud peut donc avoir une infinité d'enfants. ⊕ Un nœud a pour descendants tous les nœuds situés en dessous dans la hiérarchie. Un nœud peut donc avoir une infinité de descendants. ⊕ Un nœud a pour ancêtres tous les nœuds situés en dessus dans la hiérarchie. Un nœud peut donc avoir plusieurs ancêtres. ⊕ Un nœud a pour frères tous les nœuds situés au même niveau dans la hiérarchie. Pr. Imad Zeroual 6 XPATH & XSLT C XPATH ‘Syntaxe XPath’ Exemple 1 : Si on veut récupérer le numéro de téléphone fixe, le chemin à parcourir est le suivant : o Etape 1 : nœud "repertoire" o Etape 2 : descendre au nœud enfant "personne" o Etape 3 : descendre au nœud enfant "telephones" o Etape 4 : descendre au nœud enfant "telephone" dont l'attribut est "fixe" ⊕ L’expression Xpath correspondante : /étape1 /étape2 /étape3 /étape4 ⊕ Ce chemin est appelé chemin absolu lorsqu’il commence par / Pr. Imad Zeroual 7 XPATH & XSLT C XPATH ‘Syntaxe XPath’ Exemple 2 : Si on veut récupérer le prénom de la personne à partir d’un numéro de téléphone portable, le chemin à parcourir est le suivant : o Etape 1 : nœud "telephone" dont l'attribut est "portable" o Etape 2 : remonter au nœud parent "telephones" o Etape 3 : aller au noeud frère "prenom" ⊕ L’expression Xpath correspondante : étape1 /étape2 /étape3 ⊕ Ce chemin est appelé chemin relatif lorsqu’il ne commence pas par / Pr. Imad Zeroual 8 XPATH & XSLT C XPATH ‘Syntaxe XPath’ XPath utilise des expressions de chemin pour sélectionner des nœuds ou des ensembles de nœuds dans un document XML. Le nœud est sélectionné en suivant un chemin ou des étapes : axe::nœud[prédicat] [prédicat]... [prédicat] Axe : Il définit le sens de la recherche : sens nœud enfant ou vers un nœud parent ou un ancêtre. Noeud : Il permet d'affiner la recherche en indiquant explicitement le nom d'un nœud ou le type de nœud. Prédicats : Ils sont facultatifs. Les prédicats dont le nombre n'est pas limité, agissent comme un filtre et permettent de gagner en précision lors des recherches. Ainsi, grâce aux prédicats, il sera par exemple possible de sélectionner les informations à une position précise. Pr. Imad Zeroual 9 XPATH & XSLT C XPATH Exemples des Axes : Nom de l’axe ‘Syntaxe XPath’ Description ancestor Oriente la recherche vers les ancêtres du nœud courant ancestor-or-self Oriente la recherche vers le nœud courant et ses ancêtres attribute Oriente la recherche vers les attributs du nœud courant child Oriente la recherche vers les enfants du nœud courant descendant Oriente la recherche vers les descendants du nœud courant descendant-or-self Oriente la recherche vers le nœud courant et ses descendants following Oriente la recherche vers les nœuds suivant le nœud courant following-sibling Oriente la recherche vers les frères suivants du nœud courant parent Oriente la recherche vers le père du nœud courant preceding Oriente la recherche vers les nœuds précédant le nœud courant preceding-sibling Oriente la recherche vers les frères précédents du nœud courant Self Oriente la recherche vers le nœud courant Pr. Imad Zeroual 10 XPATH & XSLT C XPATH Exemples des Nœuds : Nom du nœud ‘Syntaxe XPath’ Description Nom du nœud Oriente la recherche vers le nœud dont le nom a explicitement été spécifié / Oriente la recherche à partir du nœud racine // Oriente la recherche vers les nœuds quel que soit leur emplacement à partir du nœud courant.. Oriente la recherche vers le père du nœud courant. Oriente la recherche vers le nœud courant * Oriente la recherche vers tous les nœuds node() Oriente la recherche vers tous les types de nœuds (éléments, commentaires, attributs, etc. ) text() oriente la recherche vers les nœuds de type texte comment() Oriente la recherche vers les nœuds de type commentaire Pr. Imad Zeroual 11 XPATH & XSLT C XPATH Exemples des Prédicats : ‘Syntaxe XPath’ Nom du prédicat Description attribute et @ permet d'affiner la recherche en fonction d'un attribut count() permet de compter le nombre de nœuds last() permet de sélectionner le dernier nœud d'une liste position() permet d'affiner la recherche en fonction de la position d'un nœud Pr. Imad Zeroual 12 XPATH & XSLT C XPATH ‘Syntaxe XPath’ Exemples : Path Résultat nom Sélectionne tous les nœuds nommés "nom" /repertoire Sélectionne l'élément racine "repertoire" Sélectionne tous les éléments "personne" qui sont des /repertoire/personne enfants de "repertoire" Sélectionne tous les éléments "telephone" quel que //telephone soit leur emplacement dans le document Sélectionne le dernier élément "prenom" descendants personne//prenom[last()] de l'élément "personne", quel que soit son emplacement sous l'élément "personne" Sélectionne tous les éléments "telephone" qui ont un //telephone[@fixe] attribut nommé "fixe" Pr. Imad Zeroual 13 XPATH & XSLT C XPATH ‘Syntaxe XPath’ Exemples : Path Résultat //nom/following-sibling::prenom Sélectionne tous les "prenom" frères suivant du nœud "nom" //personne/child::text() Sélectionne tous les nœuds de texte enfants du nœud "personne" Sélectionne tous les éléments "nom" ET "prenom" de tous //personne/nom | //personne/prenom les éléments "personne" Sélectionne tous les éléments "telephone" qui ont au moins //telephone[@*] un attribut Sélectionne tous les éléments "age" des éléments /repertoire/personne[age>18]/age "personne" de l'élément "repertoire" qui ont une valeur supérieure à 18 Sélectionne les deux premiers éléments "personne" qui /repertoire/personne[position ⊕ L'attribut name est le nom donné au template permettant de l'identifier de manière unique. ⊕ Il est important de renseigner l'un ou l'autre des deux attributs match et name, jamais les deux en même temps. Pr. Imad Zeroual 16 XPATH & XSLT C XSLT value-of : ‘ Fonctions XSL ’ ⊕ La balise xsl:value-of permet d'extraire la valeur d’un élément XML ou la valeur de ses attributs. XPath vers la balise XML souhaitée. Exemple : ⊕ Récupérer le "nom" de la première "personne" de l'élément racine "repertoire". ⊕ Récupérer le "sexe" de la "personne" avant dernière de l'élément racine "repertoire". Pr. Imad Zeroual 17 XPATH & XSLT C XSLT for-each : ‘ Fonctions XSL ’ ⊕ La balise xsl:for-each est une boucle qui traite tous les nœuds XML qui lui sont soumis. style XSLT encadré par les balises xsl:for-each sera donc appliqué sur chaque élément « visité ». Exemple : ⊕ Récupérer tous les "nom" des hommes de l’élément "personne" de l'élément racine "repertoire". Pr. Imad Zeroual 18 XPATH & XSLT C XSLT sort : ‘ Fonctions XSL ’ ⊕ La balise xsl:sort permet de trier un ensemble d'éléments : ⊕ select : c’est l’élément qu’on veut trier ; ⊕ order : l’ordre de tri (ascendant ou descendant) ; Exemple : ⊕ Trier par ordre alphabétique tous les "nom" récupérés de l’élément "personne" de l'élément racine "repertoire". Pr. Imad Zeroual 19 XPATH & XSLT C XSLT if : ‘ Fonctions XSL ’ ⊕ La balise xsl:if est utilisée pour mettre un test conditionnel sur le contenu du fichier XML. Exemple : ⊕ Récupérer tous les "nom" de l’élément "personne" qui ont une valeur supérieure à 18 dans l’élément "age". Pr. Imad Zeroual 20 XPATH & XSLT C XSLT choose : ‘ Fonctions ⊕ La balise xsl:choose est utilisée conjointement avec xsl:when et ’ XSL xsl:otherwise pour exprimer plusieurs tests conditionnels. ⊕ test : contient la condition à évaluer. Exemple : ⊕ Récupérez tous les "nom" de l’élément "personne" qui ont une valeur supérieure à 18 dans l’élément "age", sinon, récupérez leurs "prénom". Pr. Imad Zeroual 21 XPATH & XSLT C Travail dirigé Exercice 1 : ‘ ’TD-3 HTML 1. Rédiger un fichier bouteille.xml qui représente le contenu de la page HTML suivant ? 2. Ecrire un fichier bouteille.xsl qui permet de transformer le fichier bouteille.xml en le fichier HTML donné ? Pr. Imad Zeroual 22 XPATH & XSLT C Travail dirigé Correction : ‘ ’TD-3 XML 1. Rédiger un fichier bouteille.xml qui représente le contenu de la page HTML suivant ? Sidi Ali calcium 71mg/l, chlorure 20mg/l, nitrate 1mg/l, traces de fer. St-Cyr la Source Loiret 150cl 7,45 Pr. Imad Zeroual 23 XPATH & XSLT XSLT C Travail dirigé ‘ ’ TD-3 Exemple de sortie HTML Correction : 2. Ecrire un fichier bouteille.xsl qui permet de Bouteille de marque Composition: transformer le fichier bouteille.xml en le fichier HTML donné ? Lieu d'origine: Ville de , dans le department. Autres informations : Contenance: pH: Pr. Imad Zeroual 24 XPATH & XSLT C Travail dirigé Exercice 2 : ‘ ’TD-3 HTML 1. Rédiger un fichier classe.xml qui représente le contenu de la page HTML suivant ? 2. Ecrire un fichier classe.xsl qui permet de transformer le fichier classe.xml en le fichier HTML donné ? Pr. Imad Zeroual 25 XPATH & XSLT C Travail dirigé XML Correction : ‘ ’TD-3 Folan 1. Rédiger un fichier classe.xml qui représente le Ben Folan contenu de la page HTML suivant ? 12 HTML Bayan Ben Hayyan 16 Folana Bentu Hoyam 10 Pr. Imad Zeroual 26 XPATH & XSLT XSLT C Travail dirigé ‘ ’ définit TD-3 le format du document de sortie. La classe Correction : 2. Ecrire un fichier classe.xsl qui permet de Nom transformer le fichier classe.xml en le fichier Prenom HTML donné ? Numero d'etudiant

Use Quizgecko on...
Browser
Browser