Les outils de base : XPath, XSL, XLink, XForms

Slides:



Advertisements
Présentations similaires
Introduction aux Web Services Partie 1. Technologies XML
Advertisements

XML.
FragmentsManuelle : XML Publication et Fragments La publication de canaux Processus de mise à disposition de nouveaux contenus extérieurs au portail :
1 3.Langage XSL = XSLT + XSL-FO transformationFormatage.
Transformation de documents XML
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Affichage interactif, bidimensionnel et incrémental de formules mathématiques Hanane Naciri et Laurence Rideau INRIA Sophia Antipolis CARI'2000.
Le developpement web  Préparé par : ASSAL Lamiae JAMALI Zakarya
Cours MIAGE Henry Boccon-Gibod 1 XML, langage de structuration documentaire Langage de transformation et langage d'interrogation.
Les espaces de nommage XML par Philippe Poulard 1
Cours 2 : Transformation de documents XML
Xpath XPath is a language for finding information in an XML document.
le langage les éléments
Les fonctions de XPath et XSLT
Domaines nominaux XSLT
Programmation et projet encadré
Tutoriel XSLT F. Sajous ERSS – 01/04/2005.
TP 3-4 BD21.
Manipulation d’XML avec XSL
JOME, un Composant Logiciel pour le Télé-Enseignement des Mathématiques via le WEB, Compatible OpenMath et MathML Laurent DIRAT OVE / I3S-UNSA.
XSL-FO THEORIE PRATIQUE.
PLAN CECIAA Origines du projet Objectifs Solutions Techniques
Introduction aux Web Services Partie 1. Technologies HTML-XML
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Bienvenue! Qui suis-je? Webmestre depuis 1994 Café Internet en 1996 Commerce électronique Gestion de contenu web Marketing interactif.
Web Structurel
Complément Le diagramme des classes
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
Xpath XML Path language par Yves Bekkers
XSLT Langage de transformation darbre par Yves Bekkers.
XML : concours d’acronymes ou futur standard ?
STAF 2X XSL/FO Glaus & Ruckstuhl Mars © Glaus & Ruckstuhl TECFA Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et.
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
XSLT : trier et mettre en valeur le contenu d’un document XML
1 Couplage dun langage de contrôle de formatage avec un système de formatage existant DEA ISC : 1 avril 2003 Fateh Boulmaiz
Projet de Master première année 2007 / 2008
Support des connaissances TP2 XSL-T
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
XML Plan du cours Introduction au fichier XML
Les feuilles de style CSS
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX.
Données sous XML Stéphane Marchand-Maillet Groupe Viper Vision par Ordinateur et Multimédia CUI – Université de Genève
8 - XML Cours XML.
Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB
Le langage XHTML 420-S4W-GG Programmation Web Client
XSLT : XML Stylesheet Language Transformation
XSL eXtensible Stylesheet Language Historique 1999: XSLT 1.0 et XPATH 1.0 : versions supportées par la plupart des outils depuis février 2007 XSLT 2.0.
ACCARY-BARBIER / CNAM - Cycle C ère partie : Technologies XML  CHAPITRE 1 : XML et DTD  CHAPITRE 2 : Schémas XML  CHAPITRE 3 : XPath.
LE HTML ISN Terminale S Un peu d’histoire …
XPath XML Path UP Web Année universitaire
XML Stylesheet Language
Programmation Web : Introduction à XML
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Publication et Traitement avec XSL
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
 G. Gardarin Les outils de base: Publication avec XML 1. XPATH 2. XSLT 3. XSLFO 4. XLink, XForms, RSS, … 5. XML et la bureautique.
Soutenance du mémoire de synthèse
Module : Langage XML (21h)
1. Introduction 2. DTD 3. Schémas
Introduction à CSS Généralités. Introduction Beaucoup de documents XML sont destinés à être présentés. Les information du fichier seul (avec ou sans DTD)
Page 1 © Expert-IT s.a. - Développer des projets en XML Pratique.
XPath Intro 1 Notation 2 Exemples 3 Utilisations de XPath
GENIE MULTIMEDIA Restitution de documents CSS Christine Vanoirbeek EPFL – IC – CGC Bâtiment BC (Station 14) 1015 LAUSANNE
Introduction à SVG Scalable Vector Graphic. Informations ● Plus d'informations ici (draft, tutoriaux, outils... ): –
Dreamweaver Séance 1.
XSLT. Les documents XML peuvent avoir dans leur prologue une instruction de traitement xml-stylesheet. Cette instruction de traitement indique au navigateur.
1 er séance SI28 A2004 YIN Lei Emmanuel Eugene. Plan de l’exposé  Introduction au HTML  Le HTML dans le bloc-notes (notepad)  Présentation de Dreamweaver.
Extensions à la spécification XML Le "plus petit cercle" XML Yves Bekkers Mise à jour : 9 octobre 2003.
Transcription de la présentation:

Les outils de base : XPath, XSL, XLink, XForms 2. XSLT 3. XSLFO 4. XLink 5. XForms 6. Conclusion

1. XPath : l'adressage XML XPath Expressions de chemins dans un arbre XML Permet de sélectionner des nœuds par navigation Document XML ? XPath

XPath XML Path Language Expressions de chemins communes à : recommandation W3C pour expressions de chemins acceptée le 16 novembre 1999 version 2 en cours d'élaboration Expressions de chemins communes à : XSL Xpointer (liens) XQuery (queries) Xpath permet de rechercher un élément dans un document d'adresser toute sous partie d'un document XPath

XPath - Parcours d'arbre XPath opère sur l'arbre d'un document <livre auteur = "Hugo"> <titre>Les chatiments</titre> <chapitre> <section>Buonaparte </section> <section>Neige</section> </chapitre> … </livre> racine livre Auteur = "Hugo" chapitre chapitre titre section section Les chatiments Buonaparte Neige XPath

XPath - Expression de chemins Une expression de chemins spécifie une traversée de l'arbre du document : depuis un nœud de départ vers un ensemble de nœuds cibles les cibles constituent la valeur du cheminement Un chemin peut être : absolu commence à la racine /étape1/…/étapeN relatif commence à un nœud courant étape1/…/étapeN XPath

Syntaxe et sémantique Cheminement élémentaire direction::sélecteur[predicat] Directions parent, ancestor, ancestor-or-self child, descendant, descendant-or-self preceding, preceding-sibling following, following-sibling self, attribute, namespace Sélecteur nom de nœud sélectionné (élément ou @attribut) Prédicat [Fonction(nœud) = valeur] XPath

XPath - Exemples Sections d'un chapitre Texte du chapitre 1 section 2 /child::livre/child::chapitre/child::section /livre/chapitre/section Texte du chapitre 1 section 2 /descendant::chapitre[position() = 1] /child::section[position() = 2]/child::text() //chapitre[1]/section[2]/text() XPath

XPath - Synthèse XPath

2. XSLT : la présentation Permet de transformer un document régulier ou irrégulier de XML à XML, XHTML est un cas particulier De XML à présentation (HTML, texte, rtf, pdf, etc.) Un document est un arbre Le processeur XSL parcourt l'arbre et applique les règles de transformations vérifiées (à condition vraie) aux nœuds sélectionnés Un autre arbre est produit en sortie XSLT

Format (XML) pour Word, Excel Publications avec XSL Plusieurs formats de publication d’un même jeu de données Il permet la présentation sur des terminaux variés Format ( PDF) XML Document Browser Netscape/IE (XHTML, DHTML, HTML) XSL Processor Format (XML) pour Word, Excel XSL Stylesheet Format (XML) application e.Commerce format (WML) XSL

Architectures HTML XML Affichage S E R V E U R Programme XML HTML ASP ou JSP S E R V E U R Programme XML HTML Processeur XSL Affichage Fichier XML XML Affichage Traitement Processeur XSL Base de données XSL

Les feuilles de style Une feuille de style XSL est un document XML de racine <xsl:stylesheet> contient une liste de règles de transformation <xsl:template> Chaque règle (<xsl:template>) est définie par: Une condition spécifiant le sous-arbre du document d’entrée auquel elle s’applique Une production spécifiant le résultat de l’application de la règle Utilisation d'un nom de domaine spécifique Le préfixe généralement utilisé est xsl: XSLT

Exemple de document <?xml version="1.0" ?> <Guide> <Restaurant Categorie="**">  <Nom>Le Romantique</Nom> <Adresse>  <Ville>Cabourg</Ville>   <Dept>Calvados</Dept>   </Adresse>  </Restaurant> <Restaurant Categorie="***">  <Nom>Les TroisGros</Nom> <Ville>Roanne</Ville>   <Dept>Loire</Dept>   </Adresse> </Guide>   XSLT

Exemple de feuille de style XSL <?xml version="1.0" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/xsl"> <xsl:template match="/"> <html><head><B>ESSAI XSL</B></head> <body><xsl:apply-templates/></body></html>  </xsl:template> <xsl:template match="Guide">  <H1>BONJOUR LE GROUPE XML</H1>   <H2>SUIVEZ LE GUIDE</H2>   <xsl:apply-templates />   <xsl:template match="Restaurant"> <P> <I>Restaurant :</I>   <xsl:value-of select="Nom"/></P>  </xsl:template>  </xsl:stylesheet> XSLT

Les règles de production Définition des règles par <xsl:template …> Attributs match: condition de sélection des nœuds sur lesquels la règle s'applique (XPath) name: nom de la règle, pour invocation explicite (en conjonction avec <call-template>) mode: permet d'appliquer à un même élément des règles différentes en fonction du contexte priority: priorité, utilisé en cas de conflit entre deux règles ayant la même condition Exemples <xsl: template match="/"> <xsl: template match="auteur"> XSLT

La génération du résultat Le contenu de l'élément <xsl:template> est la production de la règle Les éléments du namespace xsl sont des instructions qui copient des données du document source dans le résultat Les autres éléments sont inclus tels quels dans le résultat Instructions pour: Parcourir l'arbre du document source Copier le contenu du document source dans le résultat Parcours de l'arbre: <xsl:apply-templates> <xsl:for-each> Copie du contenu du nœud sélectionné <xsl:value-of select= … > XSLT

Résumé des commandes <xsl:template>, définir une règle et son contexte   <xsl:apply-templates />, appliquer les transformations aux enfants du nœud courant <xsl:value-of select … />, extrait la valeur d'un élément sélectionné à partir du nœud courant <xsl:for-each>, définir un traitement itératif   <xsl:pi>, générer une processing instruction <xsl:element>, générer un élément   <xsl:attribute>, générer un attribut   <xsl:if>, définir un traitement conditionnel   XSLT

Quelques éditeurs XSLT

IBM XSL Editor XML XSLT Rendu XSLT

Bilan XSLT XSLT est un langage très puissant de transformation d'un arbre XML en un autre XSLT permet en particulier de publier des données XML sur le Web par transformation en un document HTML standard XSLT est utilisé : Pour publier des contenus XML Pour transformer des données (EAI, B2B) XSLT

3. XSLFO : le formatage Les Objets de mise en forme sont multiples : <fo:block> utilisé pour les paragraphes, les titres… <fo:display-rule> ligne de séparation <fo:display-graphic> zone rectangulaire contenant graphisme Ils possèdent de nombreuses propriétés Pour un block on peut définir la marge gauche et droite l’espace avant et après le paragraphe la couleur du texte ………... XSLFO

XSLFO : principes Ils sont appliqués à un nœud de l ’arbre résultat Ils sont appelés par l ’espace nominale fo Syntaxe : <xsl:template match="[motif xpath]" > <fo :[objet-de mise en forme] ([propriété-style]="[valeur]")+> [instructions-de-traitement] </fo:[objet de mise-en-forme]> </xsl:template> XSLFO

XSLFO : Exemple Définition de propriétés pour la racine <xsl:template match=‘/’> <fo-display-sequence font-style=‘italic’ start-indent=‘4pt’ end-indent=‘4pt’ font-size=‘18pt’ <xsl:apply-templates/> </fo-display-sequence> </xsl:template La définition d’une propriété en locale est prioritaire devant l’héritage XSLFO

Les outils XSL Processeurs XSLT conformes à la spécification: Apache Group (www.apache.org): Xalan 1.0.1 Oracle XDK (www.oracle.com): XML Parser 2.0.2 James Clark (www.jclark.com): XT Microsoft Internet Explorer 5.0 et plus Netscape 6 supporte XSLT Processeur XSLFO Apache Group : FOP (Formating Object Processor) Génère du PDF http://www.apache.org JFOR (Open Source) Génère du RTF http://www.jfor.org XSL

Bilan XSL XML = SGML léger pour la production de publications web importantes : production d’une source unique en XML ; XSLT = génération automatique de présentations web multiples ; XSLFO = génération automatique sur d’autres supports. Questions ? XSL

4. Autres spécifications XLink = liens externes entre documents XPointer = pointeurs internes à un document XForms = saisie de formulaires avec XML XLink et plus

Xlink et les liens Exprimer des liens entre documents XML pointe sur une URL l'URL peut inclure une partie Xpointer tout élément peut être un lien Différents types de liens simple xlink:type = "simple" étendu xlink:type = "extended" De véritables associations 1-1 en simple, k-n en étendu avec rôles possibles avec comportements possibles XLink et plus

Exemples simples <Annotation xlink:type="simple" href="note1.xml"> 1 </Annotation> <Auteur xlink:type="simple" inline="true" href="http://www.e-xmlmedia.com/~georges/"> Georges Gardarin </Auteur> <Image xlink:type="simple" href="logo.gif"/> Les attributs doivent être définis dans la DTD si le document en possède une XLink et plus

Les liens étendus Associations orientées de M vers N Ressource Locator Permettent de relier des éléments entre eux par des arcs étiquetés et ainsi de composer des graphes étiquetés orientés Éléments ressource et locator définissant les nœuds Éléments arc définissant les liens Ressource <xxx xlink:type="resource" label="..." title="..." role="...">contenu de l'élément</xxx> Locator <xxx xlink:type="locator" label="…" title="…" role="…" href="…" /> Arc <xxx xlink:type="arc" from="…" to="…" show="…" actuate="…" title="…" arcrole="…">contenu</xxx> XLink et plus

Les attributs de XLink xlink:type href title role show actuate label type de lien href référence de l'URL title titre du document cible role rôle du document cible show en place, interne ou nouveau document actuate manuel ou automatique label étiquette des arcs from source de l'arc to cible de l'arc XLink et plus

XPointer Permet de référencer un élément particulier d'un document le document est spécifié par Xlink le Xpointer est ajouté à l'URI séparée par # ou | Pointeur absolue id() : référence un élément d'identifiant donné root() : pointe sur la racine d'un document html() : référence un document HTML Pointeur relatif = XPath child, descendant, ancestor, preceding, following, … Exemple : <vin2 xlink:type="simple" href="http://www.site.fr/ degustation#xptr(/child::degustation/child::vin[2])" XLink et plus

XForms Nouvelle génération de formulaires Web Assemblage de formulaires à partir de schéma Schéma = structure + type Contraintes = Dépendances, expressions et calculs XForms User Interfaces est la partie apparente pour l’utilisateur (présentation) XForms User Interfaces intègre toutes les commandes de XHTML Ajoute en plus des contrôles (tags) spécifiques au niveau présentation. XForms

Saisie des formulaires Génération et contrôle du message XML Contrôle sur le client ou le serveur XForms Model XForms User Interface XForms Submit Protocol <XML> Instance data XForms

5. Conclusion XSL pour transformer et présenter puissant mais complexe problème de performance des processeurs ? Recommandation XSL version 1.0 http://www.w3.org/TR/xsl/ Recommandation XPath version 1.0 http://www.w3.org/TR/xpath Recommandation Xlink version 1.0 http://www.w3.org/TR/xlink Références

EXERCICES ET COMPLEMENTS Modèle des documents en entrée Modèle des documents en sortie Structure d’une feuille de style Mise en œuvre des transformations

Modèle de document en entrée Le document transformé doit être un document XML bien formé Document XML: arbre dont les nœuds sont les éléments et leur contenu (texte) Pour XSL, la racine du document, les attributs, les namespaces, les instructions de traitement et les commentaires sont aussi vus comme des nœuds Types de nœuds traités par XSL: Racine du document (différent de l’élément racine!) Éléments Texte Attributs Namespaces Instructions de traitement Commentaires

Exemple de document XML <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet href="style1.xsl" type="text/xsl"?> <CATALOGUE> <ARTICLE> <REFERENCE>JT3006</REFERENCE> <PRIX UNIT="FFR" TAX="TTC">1874</PRIX> </ARTICLE> … </CATALOGUE>

<?xml-stylesheet href="style1.xsl" type="text/xsl"?> Arbre correspondant Racine <?xml-stylesheet href="style1.xsl" type="text/xsl"?> Catalogue Article Article Prix Reference Prix="FFR" 1874 JT3006 Les attributs apparaissent comme des fils de l’élément auquel ils s’appliquent Tax="TTC"

Modèle de document en sortie En général, le document produit est un document XML Document complet Fragment de document bien formé La norme prévoit deux autres types de documents produits: Un type HTML, qui permet de transformer le HTML bien formé (ex: <BR/>) en HTML standard (ex: <BR>) Un type texte, qui permet de générer des formats non balisés de type RTF, Postscript, TeX. Le type de format de sortie est contrôlé par l’élément xsl:output

Structure d’une feuille XSL Une feuille de style XSL contient une liste de règles de transformation Chaque règle (template) est définie par: Une condition spécifiant le sous-arbre du document d’entrée auquel elle s’applique Une production spécifiant le résultat de l’application de la règle XSL utilise XML pour décrire les règles de transformation: <xsl:stylesheet> est l’élément racine d’une feuille de style XSL Toutes les instructions XSL sont des éléments du namespace "http://www.w3.org/1999/XSL/Transform" Le préfixe généralement utilisé est xsl

Exemple de feuille de style Style1.xsl <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="CATALOGUE"> <html> <xsl:apply-templates/> </html> </xsl:template> <xsl:template match="ARTICLE"> <P> </P> </xsl:stylesheet>

Que fait l'exemple? La première règle: La seconde règle: Remplace l'élément racine <CATALOGUE> par l'élément <html> Le contenu de <html> est le résultat de la transformation du contenu de <CATALOGUE> par les autres règles de la feuille de style La seconde règle: Remplace chaque élément <ARTICLE> par un élément <P> Le contenu de <P> est le texte (sans les balises) contenu dans les descendants de l'élément <ARTICLE> (règle par défaut)

Mise en œuvre Trois types de mise en œuvre possible: Transformation statique Transformation dynamique sur le serveur Web Transformation dynamique sur le client Le choix de l'approche dépend: De l'utilisation des documents produits (impression papier, publication Web) Du type de données XML manipulées (statique ou dynamique) Des capacités du serveur Web utilisé Des capacités du client Web utilisé

Architectures HTML S E R V E U R XML Programme Affichage XML XML ASP ou JSP HTML S E R V E U R XML Programme Affichage XML Processeur XSL XML Traitement Affichage XML Fichier Processeur XSL HTML PS PDF WML XML HTML Base de données Affichage Processeur XSL

Transformation statique Les documents XML sont transformés à l'avance: Impression papier Stockage HTML sur un site Web standard Avantages: Pas de problèmes de performance Serveur et client Web standards Inconvénients Impossibilité de gérer des données XML dynamiques Cohérence entre source et résultat

Transformation sur le serveur Les documents XML sont transformés à la demande par le serveur: Publication Web en HTML Échanges inter-application Avantages: Permet de gérer des données XML dynamiques Client Web standard (HTML) Inconvénients: Nécessite un serveur compatible XSL Problèmes de performances sur le serveur

Transformation sur le client Le document XML et la feuille XSL sont transmises par le serveur avant transformation: Publication Web Avantages: Permet de gérer des données dynamiques Serveur Web standard Pas de problèmes de performances sur le serveur Inconvénients: Nécessite un client Web compatible XSL Les données XML ne sont pas filtrées avant envoi

Association document-feuille XSL Transformation statique: Le document XML et la feuille XSL sont deux paramètres du programme de transformation Transformation dynamique: L'association est gérée par une instruction de traitement dans le fichier XML <?xml-stylesheet href="style1.xsl" type="text/xsl"?>

LES RÈGLES XSL Définition d'une règle La génération du résultat L'élément <xsl:apply-template> L'élément <xsl:value-of> L'élément <xsl:for-each>

Définition d'une règle Définition des règles avec <xsl:template>, avec les attributs: match: condition de sélection des nœuds sur lesquels la règle s'applique name: nom de la règle, pour invocation explicite (en conjonction avec <call-template>) mode: permet d'appliquer à un même élément des règles différentes en fonction du contexte priority: priorité, utilisé en cas de conflit entre deux règles ayant la même condition Au moins un des attributs match ou name doit être présent L'attribut match permet de spécifier des expressions complexes XPath pour sélectionner les nœuds

La génération du résultat Le contenu de l'élément <xsl:template> est la production de la règle Les éléments du namespace xsl sont des instructions qui copient des données du document source dans le résultat Les autres éléments sont inclus tels quels dans le résultat Instructions pour: Parcourir l'arbre du document source Copier le contenu du document source dans le résultat Parcours de l'arbre: <xsl:apply-templates> <xsl:for-each> Copie du contenu <xsl:value-of>

L'élément <xsl:apply-templates> L'élément <xsl:apply-templates> permet d'appliquer récursivement les règles aux fils de l'élément sélectionné par la règle courante Il a deux attributs optionnels: select: permet de sélectionner les descendants à traiter mode: permet de sélectionner les règles à appliquer L'attribut select permet de définir des expressions complexes pour sélectionner des nœuds Similaire à l'attribut match de <xsl:template> Expressions XPath

Utilisation du select Style2.xsl <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <xsl:apply-templates/> </html> </xsl:template> <xsl:template match="CATALOGUE"> <body> </body> <xsl:template match="ARTICLE"> <xsl:apply-templates select="LIBELLE"/> </xsl:stylesheet> Style2.xsl

L'élément <xsl:value-of> L'élément <xsl:value-of> calcule la valeur d'une expression et la copie dans le résultat L'expression est évaluée dans le contexte de l'élément courant Il a deux attributs: select: attribut obligatoire spécifiant l'expression XPath à évaluer disable-output-escaping: attribut optionnel gérant la copie des caractères spéciaux (valeur: yes ou no) La valeur d'un nœud est une string, sa valeur exacte dépend du type de nœud: Pour un élément, c'est tout le texte compris entre les balises de début et de fin

Utilisation de <xsl:value-of> <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <xsl:apply-templates/> </html> </xsl:template> <xsl:template match="CATALOGUE"> <body> </body> <xsl:template match="ARTICLE"> <xsl:value-of select="LIBELLE"/> </xsl:stylesheet>

L'élément <xsl:for-each> L'élément <xsl:value-of> ne devrait être appliqué qu'à des expressions retournant un nœud unique: Dans le cas contraire, seule la valeur du premier nœud est retournée L'élément <xsl:for-each> permet d'itérer sur un ensemble d'éléments défini par l'attribut: select: attribut obligatoire permettant de sélectionner les nœuds à traiter Le contenu de l'élément <xsl:for-each> est copié n fois dans le résultat: Les instructions xsl sont traitées comme dans une règle <xsl:for-each> permet de réduire le nombre de règles, dans le cas de documents réguliers

Utilisation de <xsl:for-each> <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <xsl:apply-templates/> </html> </xsl:template> <xsl:template match="CATALOGUE"> <body> <xsl:for-each select="ARTICLE"/> < xsl:value-of select="LIBELLE"/> </xsl:for-each> </body> </xsl:stylesheet> Style3.xsl

La sélection des éléments L'attribut match des éléments <xsl:template> permet de spécifier des conditions complexes pour sélectionner les éléments auxquels appliquer une règle La syntaxe de l'attribut select, utilisée par plusieurs instructions, permet de sélectionner des éléments parmi les descendants de l’élément courant auquel s’applique la règle

Exemples d'expressions para: tout élément para *: tout élément chapter|appendix: tout élément chapter ou appendix olist/item: tout élément item avec un père olist appendix/*/para: tout élément para avec un grand-père appendix appendix//para: tout élément para avec un ancêtre appendix /: le nœud racine text(): tout nœud texte processing-instruction(): toute instruction de traitement node(): tout nœud id("W11"): élément d'ID W11

Exemples avec tests para[1]: tout élément para qui est le premier fils para de son père *[position()=1 and self::para]: idem para[last()=1]: tout élément para qui est le seul fils para de son père items/item[position()>1]: tout élément item qui à un père items et qui n'est pas le premier fils item de son père item[position() mod 2 = 1]: tout élément item qui est un fils item impair @class: tout attribut class @*: tout attribut div[@class="appendix"]//p: tout élément p avec un ancêtre div dont l'attribut class vaut appendix