XSLT Le langage de transformation de. Introduction à XSLT p.1/30

Documents pareils
Production de documents avec XSLT. Production de documents p.1/??

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Master d Informatique Corrigé du partiel novembre 2010

<?xml version="1.0" encoding="iso " standalone="yes"?>

Module : programmation site Web dynamique Naviguer entre les pages via site map

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

CREATION d UN SITE WEB (INTRODUCTION)

Séance d ED n 5 : HTML et JavaScript

Les services usuels de l Internet

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Document Object Model (DOM)

Formation HTML / CSS. ar dionoea

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Hébergement de site web Damien Nouvel

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Server-side XML. PAS FINI... mais ok pour un début. Originaux. Auteurs et version. Prérequis: Java de base, servlets, GUI et XML

1 ère Université WEB. Courbevoie Samedi 21 octobre Votre site interactif sur internet.

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Attaques de type. Brandon Petty

Techniques de Programmation pour Internet

Les Bases. Messaoudi Khaled, Boukelal Hanane (Etudiants Informatique ) 2015.

Gestion Électronique de Documents et XML. Master 2 TSM

Programmation Internet Cours 4

L'API DOM : Document Object Model

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

PIVOT. Pivot/Querier Documentation technique XML/XSD/XSLT

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

SYSTÈMES D INFORMATIONS

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

TD HTML AVEC CORRECTION

Optimiser moteur recherche

Évaluation et optimisation de requêtes

Module BD et sites WEB

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

EXPOSE. La SuisseID, qu est ce que c est? Secrétariat d Etat à l Economie SECO Pierre Hemmer, Chef du développement egovernment

WebSSO, synchronisation et contrôle des accès via LDAP

HTML/CSS - Travaux Pratiques 2

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Activités HTML. Code: act-html

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Introduction aux concepts d ez Publish

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

Extended communication server 4.1 : VoIP SIP service- Administration

Projet en nouvelles technologies de l information et de la communication

Applications orientées données

Les architectures 3-tiers Partie I : les applications WEB

Présentation du Framework BootstrapTwitter

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

XML : documents et outils

HTML. Notions générales

Normes techniques 2011

Cours de bases de données. Philippe Rigaux

L'essentiel de XML. Cours XML. Olivier Carton

Application Web et J2EE

Annexe C Spécification pour les fichiers importés en format XML

Sana Sellami. Licence Professionnelle SIL

Proxies,, Caches & CDNs

Documentation CAS à destination des éditeurs

STID 2ème année : TP Web/PHP

25 mars. Tutoriel sur Laravel. Préparé par : Lydiane Beaulne-Bélisle. Ceci est un tutorial qui montre comment débuter avec le Framework PHP Laravel.

Aspects techniques : guide d interfaçage SSO

Serveur d Applications Web : WebObjects

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

BASE DE DONNÉES XML NATIVE

Tutoriel : Feuille de style externe

< Atelier 1 /> Démarrer une application web

OpenText StreamServe Cours Customer Communication Management L essentiel

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Réseaux. 1 Généralités. E. Jeandel

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

Les sites web avec NVU

Dévéloppement de Sites Web

Logiciels de référencement

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Programmation Web. Madalina Croitoru IUT Montpellier

Web Tier : déploiement de servlets


Bases de données et Interfaçage Web

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

BD et XML : Exercices

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Manuel d'utilisation du navigateur WAP Palm

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

JavaServer Pages (JSP)

Informatique : Création de site Web Master 2 ANI TP 1

NAMEBAY PRO. votre site de revente de noms de domaine en marque blanche. Documentation technique

Le bon sens et l expérience

Manuel d utilisation Mailchimp

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Client / Serveur. Rémy Courdier. Normes et Standards. C/S et l Internetl

Composition semi-automatique de Services Web

Les types de fichiers

ENVOI EN NOMBRE DE Mails PERSONNALISES

BIRT (Business Intelligence and Reporting Tools)

34. DOM (Document Object Model)

Transcription:

XSLT Le langage de transformation de documents XML Introduction à XSLT p.1/30

Sommaire Une introduction à XSLT, destinée à comprendre les mécanismes du langage. Règles XSLT Désignation de fragments XML Appels de règles Application : XML - HTML et XML - WML Passage de paramètres Introduction à XSLT p.2/30

XSLT, où, quand, comment Document XML Document XML Prog. XSLT Serveur web Prog. XSLT Serveur web Client Web HTML WML Client Web Client WAP Prog. XSLT HTML HTML Prog. XSLT Introduction à XSLT p.3/30

Structure de base : les règles Règle = template : élément de base pour produire le résultat une règle s applique dans le contexte d un nœud de l arbre l application de la règle produit un fragment du résultat. Programme XSLT = ensemble de règles pour construire un résultat Introduction à XSLT p.4/30

Un exemple Produire une phrase quand on rencontre un nœud FILM : xsl:template match="film" Ceci est le texte produit par application de cette règle. /xsl:template Motif de sélection : match="film" Corps de la règle = contenu de l élément Introduction à XSLT p.5/30

Extraction de données On insére dans le résultat des fragments du document traité Exemple : recherche du titre pour le nœud FILM : xsl:value-of select="titre"/ Plus généralement : on donne un chemin d accès à un nœud à partir du nœud courant Introduction à XSLT p.6/30

Illustration Contexte d application de la règle XSLT select="titre" FILM TITRE AUTEUR ANNEE GENRE PAYS RESUME Vertigo Hitchcock 1958 Drame USA Scotty... Introduction à XSLT p.7/30

Une règle complète <xsl:template match="film"> <html> <head> <title>film: <xsl:value-of select="titre"/> </title> </head> <body> Le genre du film, c est <b><xsl:value-of select="genre"/></b> </body> </html> </xsl:template> Introduction à XSLT p.8/30

Le résultat Appliquée à Vertigo.xml, on obtient : <html> <head> <title>film: Vertigo </title> </head> <body> Le genre du film, c est <b>suspense</b> </body> </html> Introduction à XSLT p.9/30

Produire un document HTML html head body title "Film: " <xsl:value-of select="titre"> p h1 i i <xsl:value-of <xsl:value-of select="titre"> select="genre"> <xsl:value-of select="pays"> Introduction à XSLT p.10/30

Chemins complexes Dans l exemple précédent, on accédait aux fils d un nœud. En fait on peut : Accéder à tous les descendants Accéder aux parents, aux frères, aux neveux... Accéder aux attributs Effectuer des boucles Le langage d expression de chemins : XPath. Introduction à XSLT p.11/30

Salles et séances chemin "FILM/TITRE" Contexte d application de la règle FILM SALLE chemin "@NO" NO=2 PLACES=320 chemin SEANCES/SEANCE chemin "REMARQUE" TITRE AUTEUR ANNEE GENRE PAYS RESUME REMARQUE SEANCES Alien Scott Science-Fiction 1979 USA Près d un vaisseau spatial... Réservation conseillée boucl for-eac SEANCE SEANCE SEANCE 15:00 18:00 21:00 Introduction à XSLT p.12/30

Chemins complexes Descendants : le titre du film est désigné par select="film/titre" ; Attributs : le numéro de la salle est désigné par select="@no" ; Boucles : avec xsl:for-each sur l ensemble des séances désignées par select="seances/seance" ; L élément contexte : désigné par le symbole., comme dans select=".". Introduction à XSLT p.13/30

Application Quelques exemples de chemins : <xsl:template match="salle"> <h2>salle No <xsl:value-of select="@no"/></h2> Film: <xsl:value-of select="film/titre"/> de <xsl:value-of select="film/auteur"/> <ol> <xsl:for-each select="seances/seance"> <li><xsl:value-of select="."/></li> </xsl:for-each> </ol> </xsl:template> Introduction à XSLT p.14/30

Le résultat Appliqué à Alien.xml : <h2>salle No 1 </h2> Film: Alien de Ridley Scott <ol> <li> 15:00</li> <li> 18:00</li> <li> 21:00</li> </ol> NB : c est un fragment HTML, à intégrer dans un document complet. Introduction à XSLT p.15/30

Appels de règles En général on produit un résultat en combinant plusieurs règles : La règle initiale s applique à la racine du document traité ( / ) On produit alors le cadre du document HTML On appelle d autres règles pour compléter la création du résultat Introduction à XSLT p.16/30

Application au cinéma CINEMA NOM ADRESSE METRO SALLE NO=1 PLACES=320 SALLE NO=2 PLACES=120 Epée de bois 100, rue Mouffetard Censier TITRE REMARQUE SEANCES TITRE SEANCES Alien Réservation conseillée Vertigo SEANCE SEANCE SEANCE SEANCE 15:00 18:00 21:00 22:00 Introduction à XSLT p.17/30

Première règle «Cadre» HTML, puis appel de la règle CINEMA <xsl:template match="/"> <html> <head><title>programme de <xsl:value-of select="cinema/nom"/ </title> </head> <body bgcolor="white"> <xsl:apply-templates select="cinema"/> </body> </html> </xsl:template> Introduction à XSLT p.18/30

Règle CINEMA Exploitation de l élément CINEMA, puis appel à la règle SALLE <xsl:template match="cinema"> <h1><i> <xsl:value-of select="nom"/> </i></h1><hr/> <xsl:value-of select="adresse"/>, <i>métro: </i> <xsl:value-of select="metro"/> <hr/> <xsl:apply-templates select="salle"/> </xsl:template> Introduction à XSLT p.19/30

Vue d ensemble Démo html head body title h1 hr adresse p p Règle "/" i h2 h3 h2 h3 Epée de bois Salle No 1 Film: Alien Salle No 2 Film : Vertig Règle "CINEMA" Règle "SALLE" Introduction à XSLT p.20/30

La même chose, en WML On génère les cartes du site <xsl:template match="/"> <wml> <!-- Carte d accueil --> <xsl:apply-templates select="cinema"/> <!-- Cartes pour les salles et séances -- <xsl:apply-templates select="cinema/salle <!-- création des cartes pour les films - <xsl:apply-templates select=".//film"/> </wml> </xsl:template> Introduction à XSLT p.21/30

Arbre XML du site wml card id=index card id=s1 id=s2 id=alien id=vertig card card card p p p p p a href=s1 a href=alien href=vertigo a a href=s2 Introduction à XSLT p.22/30

Règle CINEMA <xsl:template match="cinema"> <card id="index" title="programme"> <p align="center"> <xsl:value-of select="nom"/> </p> <xsl:for-each select="salle"> <p> <a href="#s{@no}"> Salle <xsl:value-of select="@no"/ </a> <xsl:value-of select="film/titre </p> </xsl:for-each> </card> </xsl:template> Introduction à XSLT p.23/30

Résultat <card id="index" title="programme"> <p align="center"> Epée de bois </p> <p> <a href="#s1"> Salle 1: </a> Alien </p> <p> <a href="#s2"> Salle 2: </a> Vertigo </p> </card> Introduction à XSLT p.24/30

Règle SALLE <xsl:template match="salle"> <card id="s{@no}"> <p>séances salle <xsl:value-of select="@no"/></p> <p> <a href="#{film/titre}"> Film : <xsl:value-of select="film/titre"/> </a> </p> <xsl:apply-templates select="seances"/> </card> </xsl:template> Introduction à XSLT p.25/30

Résultat <card id="s2"> <p> Séances salle 2 </p> <p> <a href="#vertigo"> Film : Vertigo</a> </p> <p> Séance 22:00 </p> </card> Introduction à XSLT p.26/30

XSLT avec paramètres (Démo) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0/ "http://www.w3.org/tr/rec-html40/stri <html> <head> <title>formulaire de Recherche</title> </head> <body bgcolor="white"> <h1>formulaire de Recherche</h1> <form method= get action= Moteur.xml n Film: <INPUT TYPE= TEXT NAME= Séance: <INPUT TYPE= TEXT NAME= Ville: <INPUT TYPE= TEXT NAME= <input type= submit name= chercher v </form> </body> </html> Introduction à XSLT p.27/30

Le document XML <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE MOTEUR [ <!ENTITY EpeeDeBois SYSTEM "http://epee-de-bois.fr/edb.xml" <!ENTITY CineMarseille SYSTEM "http://cine-marseille.fr/cm.xml ]> <MOTEUR> <CINEMA> &EpeeDeBois; </CINEMA> <CINEMA> &CineMarseille; </CINEMA> </MOTEUR> Introduction à XSLT p.28/30

Traitement des paramètres... <xsl:param name="titre"/> <xsl:param name="seance"/> <xsl:param name="ville"/> <xsl:template match="moteur"> <xsl:for-each select="cinema"> <xsl:if test=" ($titre = or TITRE = $titre) and ($seance = or HEURE >= $seance and ($ville = or VILLE = $ville)"> <xsl:apply-templates select="." /><p/> </xsl:if> </xsl:for-each> </xsl:template> Introduction à XSLT p.29/30

Conclusion sur XSLT Un langage totalement adapté au traitement de documents XML Parcours d un document, vu comme un arbre Déclenchement de règles sur certains nœuds Association de plusieurs programmes à un même document Introduction à XSLT p.30/30