Travaux Dirigés n 4. Encore des transformations XSL



Documents pareils
WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

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

Créer son questionnaire en ligne avec Google Documents

PHP 5.4 Développez un site web dynamique et interactif

SITE I NTERNET. Conception d un site Web

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

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

Bureautique Initiation Excel-Powerpoint

Système de gestion de contenu

les techniques d'extraction, les formulaires et intégration dans un site WEB

RÉALISATION D UN SITE DE RENCONTRE

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

4. Personnalisation du site web de la conférence

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Formation Découverte du Web

Devenez un véritable développeur web en 3 mois!

Formation Webmaster : Création de site Web Initiation + Approfondissement

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Base de Connaissances SiteAudit. Utiliser les Rapports Planifiés. Sommaire des Fonctionnalités. Les Nouveautés

Introduction à Microsoft InfoPath 2010

SP1 : Intégration d'une vidéo dans une mardi 21/01/2014. page web, fonction du format vidéo et 3 mercredi 22/01/2014

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Manuel du composant CKForms Version 1.3.2

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

Essais cliniques de médicaments : ce qui va changer. Dr Philippe VELLA Chef de l Unité Essais Cliniques

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

BIRT (Business Intelligence and Reporting Tools)

A. Présentation. LanScanner2006

CONNEXION. Une interface de connexion sécurisée, simple et accessible même depuis un appareil mobile. CONNEXION /

SYSTÈMES D INFORMATIONS

CATALOGUE DES OFFRES O2i INGÉNIERIE POUR LES PLATEFORMES ÉDITORIALES

Formation en Logiciels Libres. Fiche d inscription

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

L export de SAS vers Excel expliqué à ma fille

Adobe Technical Communication Suite 5

Introduction aux concepts d ez Publish

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Master Technologies numériques appliquées à l'histoire Deuxième année

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

L externalisation de vos logiciels entreprises : une solution aux problèmes de coûts, de sécurités et de réactivités

Qui sommes-nous? Contact

BES WEBDEVELOPER ACTIVITÉ RÔLE

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Utiliser un CMS: Wordpress

Utiliser SQL Server 2008 R2 Reporting Services comme source de donne es pour Microsoft Excel

UE 8 Systèmes d information de gestion Le programme

travail collaboratif se

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Content Management System. bluecube. Blue Cube CMS V4.3 par Digitalcube

Ak Documentation

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

Dans l'article précédent, vous avez appris

Sommaire Livre blanc CGIDEV2 pour RePeGlio

Introduction au développement SharePoint. Version 1.0

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Trois nouveaux formulaires sont donc nécessaires : Pour l affichage de la liste, un formulaire de sortie WEB_Liste associé à la table des [Films] ;

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

Administrateur/Technicien/Développeur Profil

Menu Fédérateur. Procédure de réinstallation du logiciel EIC Menu Fédérateur d un ancien poste vers un nouveau poste

Module BD et sites WEB

arcopole Studio Version 3.1

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

Diminuer les taches administratives, mieux gérer les objectifs, valoriser le travail, mettre à disposition un support de vente de qualité.

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

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

5. Excel 2010, le tableur collaboratif. a. Concevez des tableaux lisibles

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

[ GLPI et OCS pour Gentoo 2006] ArtisanMicro. Alexandre BALMES

LA GMAO ACCEDER : PRESENTATION et VISUALISATION

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

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

SPIP. Gestion de la performance dans SPIP. Préoccupa)on historique

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Créateur de sites Internet. Développeur de logiciels.

Création outil multimédia de restitution du projet «l intergénérationnel : un levier pour un levier pour créer du lien social en milieu rural

INSTITUT LIMAYRAC. enseignement supérieur Toulouse. Vincent de Prato BTS Informatique de Gestion. Option Administrateur de Réseaux Locaux

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

Déploiement d application Silverlight

Un site web collaboratif avec Drupal. Judith Hannoun - Journées INSHS 16 Octobre 2012

La demande de logement social en Ile de France. Le portail en ligne

Installation SharePoint Foundation 2013 en mode Stand-Alone

Installation de SharePoint Foundation 2013 sur Windows 2012

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Gestion Électronique de Documents et XML. Master 2 TSM

Gérer son Google Drive pour gérer ses informations : le tutoriel

Diffuser un contenu sur Internet : notions de base... 13

Mode operatoire Reseau pedagogique

MODULE Mailing - Newsletter

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Nouveautés joomla 3 1/14

L'API DOM : Document Object Model

Une solution opensource d'affichage dynamique - XIBO

SITES E COMMERCE : Formulaire à compléter

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Transcription:

Université de Reims Champagne-Ardenne U.F.R. de Sciences Exactes et Naturelles Licence MI 2009/2010 Travaux Dirigés n 4 Encore des transformations XSL Exercice 1 (Création d un template) 1 ) À partir du code XML suivant, réaliser avec un seul template un tableau en HTML contenant, pour chaque livre, son titre, son année de parution et ses auteurs dans cet ordre : <?xml version=" 1. 0 " encoding="utf 8"?> <?xml s t y l e s h e e t h r e f=" exemple1. x s l " type=" t e x t / x s l "?> < l i s t e> < l i v r e> < t i t r e genre=" j e u ">Le Texas Hold Em Poker o n l i n e </ t i t r e > <auteur>mark Stohan</auteur> <auteur>robert Bluman</auteur> <parution >2006</ parution > </ l i v r e > <l i v r e > < t i t r e genre="j e u">sudoku Manga</ t i t r e > <auteur>sudoku f a c t o r y </auteur> <parution >2007</ parution > </ l i v r e > <l i v r e > < t i t r e genre="j e u">kakoku</ t i t r e > <auteur>h i z i Kagochi</auteur> <parution >2005</ parution > </ l i v r e > <l i v r e > < t i t r e genre="photo">manuel de l a photo</ t i t r e > <auteur>j a c k i e Contiboeuf </auteur> <auteur>alain Mocney</auteur> <parution >2006</ parution > </ l i v r e > </ l i s t e >

<x s l : t e m p l a t e match="/ l i s t e "> <head> < t i t l e>e x e r c i c e 1</ t i t l e> </ head> <t a b l e> <x s l : f o r each s e l e c t=" l i v r e "> <t r> <td><x s l : v a l u e o f s e l e c t=" t i t r e "/></ td> <td><x s l : v a l u e o f s e l e c t=" p a r u t i o n "/></ td> <x s l : f o r each s e l e c t=" auteur "> </ t a b l e> </ body></ html> <td><x s l : v a l u e o f s e l e c t=". "/></ td> 2 ) Expliquer la raison pour laquelle, à partir de la feuille de style suivante, le résultat obtenu est celui de la figure 1 ci-dessous. <x s l : t e m p l a t e match="/"> <head> < t i t l e>e x e r c i c e 2</ t i t l e> </ head> <x s l : a p p l y t emplates /> </ body> </ html> <x s l : t e m p l a t e match=" t i t r e "> <x s l : f o r each s e l e c t=". "> T i t r e : <x s l : v a l u e o f s e l e c t=". "/><br /> Exercice 2 (Tests, tris, etc.) 1 ) Écrivez une feuille de style XSLT à partir de l exemple de l exercice 1.1 et qui affiche les titres de chaque ouvrage publié à partir de 2006. Le résultat doit avoir l aspect visuel suivant : 2009/2010 Travaux Dirigés n 4 page 2/3

Figure 1 Application de la feuille de style Figure 2 Tests conditionnels <x s l : o u t p u t method=" html " indent=" yes "/> <x s l : t e m p l a t e match=" l i s t e "> <head>< t i t l e>e x e r c i c e <x s l : a p p l y t emplates /> </ body></ html> 2. 1</ t i t l e></ head> <x s l : t e m p l a t e match=" l i v r e "> < x s l : i f t e s t=" p a r u t i o n [. >=2006] "><x s l : v a l u e o f s e l e c t=" t i t r e "/><x s l : t e x t> : Paru en </ x s l : t e x t> <x s l : v a l u e o f s e l e c t=" p a r u t i o n "/> <br /></ x s l : i f> 2 ) Écrivez une feuille de styles qui permet de recapituler dans un tableau toutes les informations figurant dans le XML de l exercice 1.1. Les livres les plus récents doivent apparaître en haut du tableau et chaque titre devra s afficher par ordre alphabétique, conformément à la figure 3 ci-dessous. 2009/2010 Travaux Dirigés n 4 page 3/3

Figure 3 Tri alphabétique <x s l : o u t p u t method=" html " indent=" yes "/> <x s l : t e m p l a t e match="/"> <head>< t i t l e>e x e r c i c e 2. 2</ t i t l e></ head> <t a b l e border="1"> <x s l : a p p l y t emplates /> </ t a b l e> </ body></ html> <x s l : t e m p l a t e match=" l i s t e "> <x s l : f o r each s e l e c t=" l i v r e "> < x s l : s o r t s e l e c t=" p a r u t i o n " o r d e r=" descending " data type="number"/> < x s l : s o r t s e l e c t=" t i t r e "/> <t r><td><x s l : v a l u e o f s e l e c t=" t i t r e "/></ td> <td><x s l : v a l u e o f s e l e c t=" p a r u t i o n "/></ td> Exercice 3 (Bannir le for-each) Produisez le même résultat que le fichier XSLT de l exercice 1.1, sans utiliser l instruction xsl :for-each. 2009/2010 Travaux Dirigés n 4 page 4/3

Comme il et interdit d utiliser for-each, nous devons créer des templates pour chaque titre, auteur et parution, et les appeller avec xsl :apply-templates. <x s l : t e m p l a t e match="/"> <head> < t i t l e>e x e r c i c e 3. 7</ t i t l e> </ head> <x s l : a p p l y t emplates /> </ body></ html> <x s l : t e m p l a t e match="/ l i s t e "> <t a b l e border="1"> <x s l : a p p l y t emplates s e l e c t=" l i v r e "/> </ t a b l e> <x s l : t e m p l a t e match=" l i v r e "> <t r> <x s l : a p p l y t emplates s e l e c t=" t i t r e "/> <x s l : a p p l y t emplates s e l e c t=" p a r u t i o n "/> <x s l : a p p l y t emplates s e l e c t=" auteur "/> <x s l : t e m p l a t e match=" t i t r e "> <td><x s l : v a l u e o f s e l e c t=". "/></ td> <x s l : t e m p l a t e match=" p a r u t i o n "> <td><x s l : v a l u e o f s e l e c t=". "/></ td> <x s l : t e m p l a t e match=" auteur "> <td><x s l : v a l u e o f s e l e c t=". "/></ td> Exercice 4 (Transformation XML vers XML) Considérons le document XML suivant : <?xml version=" 1. 0 " encoding="iso 8859 1" standalone="no"?> <mediatheque> <media type="cd" i d="ctc79"> < t i t r e>london C a l l i n g</ t i t r e> <auteur>the Clash</ auteur> <annee>1979</ annee> </ media> <media type="dvd" i d="dsa01"> < t i t r e>le s e i g n e u r des anneaux l a communauté de l anneau</ t i t r e > <auteur>peter Jackson </auteur> <annee >2001</annee> </media> <media type=" l i v r e " i d="lsa54"> <t i t r e >Le s e i g n e u r des anneaux l a communauté de l anneau</ t i t r e> <auteur>j.r.r. Tolkien</ auteur> <annee>1954</ annee> </ media> </ mediatheque> 2009/2010 Travaux Dirigés n 4 page 5/3

1 ) On souhaite modifier le document XML précédent, plus exactement, on souhaite à l aide d une transformation XSL obtenir un document dans lequel type, id, titre, auteur et annee seront des balises filles de media. <?xml version=" 1. 0 " encoding="utf 8"?> <x s l : o u t p u t method="xml" encoding="utf 8" indent=" yes " /> <x s l : t e m p l a t e match="/ mediatheque "> <mediatheque> <x s l : f o r each s e l e c t="media"> <media> <type> <x s l : v a l u e o f s e l e c t=". / @type"/> </ type> <i d> <x s l : v a l u e o f s e l e c t=". / @id"/> </ i d> < t i t r e> <x s l : v a l u e o f s e l e c t=" t i t r e "/> </ t i t r e> </ mediatheque> </ media> <auteur> <x s l : v a l u e o f s e l e c t=" auteur "/> </ auteur> Exercice 5 (XML avec PHP) 1 ) Dans le cadre d une transformation sur le serveur, donnée le code PHP permettant de réaliser la transformation et de sauvegarder ceci sur le serveur. <?php $ xsldoc = new DOMDocument( ) ; $ xsldoc >load ( " mediatestxml. x s l " ) ; $xmldoc = new DOMDocument( ) ; $xmldoc >load ( " mediatheque. xml" ) ; $ proc = new XSLTProcessor ( ) ; $ proc >i m p o r t S t y l e s h e e t ($ xsldoc ) ; $ doc = $ proc >transformtoxml ( $ xmldoc ) ; $ t o s a v e = new DOMDocument( ) ; $ tosave >loadxml($ doc ) ; $ tosave >save ( " t o t o. xml" ) ;?> Exercice 6 (Vers des transformations dynamiques) Dans le cadre de transformations sur le serveur, on souhaite pouvoir, à partir d un formulaire, choisir le champs selon lequel on va effectuer un tri. Il faudra donc mettre en place la possibilité de modifier le fichier XSL avant d appliquer la transformation. 1 ) En reprenant la transformation de l exercice précédent proposez plusieurs solutions à ce problème 2009/2010 Travaux Dirigés n 4 page 6/3

1. la première solution consiste à faire 2 fichiers pour le XS, et à les concaténer sus la forme de chaîne de caractères, en y incluant au milieu la ligne qui correspond au critère de tri 2. la seconde solution consiste à mettre en place un motif dans le fichier XSL, et à remplacer le motif par la valeur associée au tri, notamment à l aide d expressions régulières 2 ) Proposez l ensemble des fichiers : HTML, PHP et XSL pour chacune des solutions 2009/2010 Travaux Dirigés n 4 page 7/3

Le fichier HTML : <head> < t i t l e> Choix du c r i t è r e de t r i </ t i t l e> </ head> <form name="" a c t i o n=" ex4. php" method="post"> c r i t è r e de choix : <s e l e c t name=" choix "> <option value=". / @type"> l e type </ option> <o ption value=". / @id"> l i d e n t i f i c a t e u r </option> <o ption value=" t i t r e "> l e t i t r e </option> <option value="auteur"> l auteur </ option> </ s e l e c t> <input type=" submit " value="go"/> </ form> </ body> </ html> Le fichier XSL : <?xml version=" 1. 0 " encoding="utf 8"?> <x s l : t e m p l a t e match="/ mediatheque "> <head> < t i t l e> XSL </ t i t l e> </ head> <t a b l e border="1"> <t r> <td> Type </ td> <td> ID </ td> <td> T i t r e </ td> <td> auteur </ td> <x s l : f o r each s e l e c t="media"> < x s l : s o r t s e l e c t=" c r i t e r e "/> <t r> <td> <x s l : v a l u e o f s e l e c t=". / @type"/> </ td> <td> <x s l : v a l u e o f s e l e c t=". / @id"/> </ td> <td> <x s l : v a l u e o f s e l e c t=" t i t r e "/> </ td> <td> <x s l : v a l u e o f s e l e c t=" auteur "/> </ td> </ t a b l e> </ body> </ html> Le fichier PHP : <?php $ c r i t e r e = $_POST[ " choix " ] ;?> $ xsldoc = new DOMDocument( ) ; $ f i c = f i l e _ g e t _ c o n t e n t s ( ". / x s l e x 5. x s l " ) ; $ l e x s l = preg_replace ( "/ c r i t e r e /",$ c r i t e r e, $ f i c ) ; $ xsldoc >loadxml($ l e x s l ) ; $xmldoc = new DOMDocument( ) ; $xmldoc >load ( " mediatheque. xml" ) ; $ proc = new XSLTProcessor ( ) ; $ proc >i m p o r t S t y l e s h e e t ($ xsldoc ) ; $ doc = $ proc >transformtoxml ( $ xmldoc ) ; echo $ doc ; 2009/2010 Travaux Dirigés n 4 page 8/3