Les outils du XML. Xpath, XSL, XSLT, et autres trucs en X



Documents pareils
Gestion Électronique de Documents et XML. Master 2 TSM

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

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

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

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

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

Master d Informatique Corrigé du partiel novembre 2010

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

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

SII Stage d informatique pour l ingénieur

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

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

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

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Formation HTML / CSS. ar dionoea

Programmation Internet Cours 4

HTML. Notions générales

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Bernard Lecomte. Débuter avec HTML

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

Design et implémentation d un logiciel de validation et de génération de configurations réseaux

Gestion documentaire (Extraits du CCI version 1.2)

Introduction aux concepts d ez Publish

Adobe Technical Communication Suite 5

Guide de réalisation d une campagne marketing

< Atelier 1 /> Démarrer une application web

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

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

BASE DE DONNÉES XML NATIVE

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

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

BASE DE DONNÉES XML NATIVE

Document Object Model (DOM)

Initiation à html et à la création d'un site web

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

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

Installation de DocBook sur un système Linux

WEBSEMINAIRE INTRODUCTION AU REFERENCEMENT

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

TD3 - Facturation avec archivage automatisé

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

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

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

Créer un site Web : mode d emploi Sous SPIP, avec le squelette «établissement» de l académie de Versailles

XML et recherche d information

Programmation Web TP1 - HTML

Malgré son aspect spartiate, Freeplane offre de nombreuses fonctionnalités en particulier dans le domaine de la diffusion des cartes sur le Web.

HTML, CSS, JS et CGI. Elanore Elessar Dimar

L'API DOM : Document Object Model

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

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

L'essentiel de XML. Cours XML. Olivier Carton

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

Mysql avec EasyPhp. 1 er mars 2006

XML : documents et outils

XML et Bases de données. Les bases de données XML natives.

Excel 2007 Niveau 3 Page 1

Support Infrastructure des applications - 1 / 18 - I. Introduction...2

Les services usuels de l Internet

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

Partie publique / Partie privée. Site statique site dynamique. Base de données.

creer votre site internet en html/css

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

Titres de créances NégOciables Refonte Informatique et organisationnelle

BD et XML : Exercices

Tutoriel : Feuille de style externe

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

FORMATION / CREATION DE SITE WEB / 4 JOURNEES Sessions Octobre 2006

PROSOP : un système de gestion de bases de données prosopographiques

Les types de fichiers

Programmation Web. Madalina Croitoru IUT Montpellier

Sana Sellami. Licence Professionnelle SIL

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

GESTION D UNE BASE BIBLIOGRAPHIQUE

Outils logiciels pour l'ingénierie documentaire

Les outils de création de sites web

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1

Optimiser pour les appareils mobiles

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

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

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

1 Avant-Propos 5 Remerciements. 9 Usages, contraintes et opportunités du mobile. 33 Site ou application : quelle solution choisir? Table des matières

Petite définition : Présentation :

Utiliser un tableau de données

Créer une base de données vidéo sans programmation (avec Drupal)

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

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

SVP j ai besoin d aide!

A. Architecture du serveur Tomcat 6

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

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

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)

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

Transcription:

Les outils du XML Xpath, XSL, XSLT, et autres trucs en X

XPATH Un outil de sélection de nœud

Document XML : vue arborescente <cv> <etatcivil> <nom> Lemay </nom> <prenom> Aurélien </prenom> <date> 5 Juin 1976 </date> <lieu> Tourcoing </lieu> </etatcivil> <etatcivil> <cv> <Formation> <nom> <prenom> <date> <lieu> Lemay Aurélien 5 Juin 1976 Tourcoing

Sélection de nœud Le document XML contient des données On veut pouvoir les extraire automatiquement Q : J ai un CV, je veux trouver le nom de la personne, ou est-il? R : Il se trouve sous la balise <nom>, ellemême sous la balise <etatcivil>, sous <cv>

Relations entre «nœuds» <cv> <etatcivil> <nom>lemay</nom> <prenom>aurélien</prenom> <date>5 Juin 1976</date> <lieu> Tourcoing </lieu> </etatcivil> <cv> est la racine du document <etatcivil> est le père de <nom> <nom> est le fils de <etatcivil> <prenom> est le frère de <nom> <nom> est un descendant de <cv> <cv> est un ascendant de <nom>

XPATH : un langage de sélection de nœud Q : J ai un CV, je veux trouver le nom de la personne, ou est-il? R : obtenue par l expression XPATH : /cv/ etatcivil/nom

Syntaxe XPATH balise / //... @ Sélectionne tous les nœuds fils des nœuds ayant cette balise Sélectionne à partir de la racine Sélectionne à partir de n importe où Le nœud courant Le père du nœud courant Sélectionne un attribut

Exemple XPATH etatcivil /cv etatcivil/nom //nom cv//nom //@photo Les nœuds en dessous d état civil Le cv Le nom sous l etat civil Tous les noms (où qu ils soient) Les noms qui sont descendants d un nœud cv Sélectionne tous les attributs nommés photo

Exercice (1) Préparation : Modifions le CV Toutes les dates : mettre uniquement une année Ajouter l attribut photo dans etatcivil <etatcivil photo= elvis.jpg >

Exercice (2) Trouver les expressions XPATH correspondantes aux questions suivantes Quel est le prénom de la personne? Quel sont les titres des formations? Quel est le nom de la photo?

Correction Quel est le prénom de la personne? /cv/etatcivil/nom ou nom Quel sont les titres des formations? //formation/titre Quel est le nom de la photo? /cv/etatcivil/@photo

Les prédicats Et si je veux faire des choses plus précises, dépendant d une condition? Ex : quel est la formation suivie en 1999? Quelles sont les expériences professionnelles après 2002? Quelle est la première formation suivie?

Prédicats : exemples /cv/formation[1] /cv/formation[last()] /cv/formation[last()-1] /cv/formation[position()<3] /cv/etatcivil[@photo] /cv/formation[date>2000] /cv/formation[date>2000]/titre La première formation La dernière formation L avant dernière Les deux premières Les etatcivil qui ont une photo Les formations après 2000 Le titre des formations après 2000

Exercice (3) Trouvez les expressions XPATH correspondant aux requêtes suivantes : La dernière expérience professionnelle L année de la dernière expérience professionnelle Le titre des formations ayant lieu à Lille

Correction La dernière expérience professionnelle /cv/experience[last()] L année de la dernière expérience professionnelle /cv/experience[last()]/date Le titre des formations ayant lieu à Lille /cv/formation[lieu="lille"]

Conclusion XPATH Xpath nous permet de rechercher des informations dans un document XML Nous n avons pas tout vu sur XPATH Voir www.w3schools.com/xpath par exemple Il existe d autres systèmes (Xquery, Xpointer, ) mais Xpath est le plus courant

XSL, XSLT Transformation de documents XML

XML Différents formats XML (associés à une DTD) pour différents usages : Stockage de données Création de documents web Création de documents papiers Représentation des données (graphiques, dessins, )

Pourquoi transformer? Passer d un format XML à un autre similaire Changement de logiciel par exemple Représenter une partie des données par un autre format Ex : récupérer des données pour les afficher dans un graphique (format SVG) Utiliser un format plus adapté à l utilisation qu on fait des données Ex : passer notre CV XML en XHTML pour le mettre sur Internet

Transformation du CV <cv> <etatcivil photo=moi.jpg> <nom>lemay</nom> <prenom>aurélien</prenom> <date>5 Juin 1976</date> <lieu>tourcoing</lieu> </etatcivil> <formation> <titre>doctorat</titre> <date>2002</date> <lieu>lille</lieu> <mention>très Honorable</mention> </formation> <html> <head> <title>aurélien Lemay </title> </head> <body> <div class= etatcivil > Aurélien Lemay..

Le CV Observons cv.html Il est bien mieux adaptés à l affichage On en fait ce qu on en veut Q : Comment passer de cv.xml à cv.html?

Transformations XSL XSL : extensible Stylesheet Language Un langage pour présenter (transformer) les fichiers XML XSL : XML Stylesheet XSL = XSLT (transformation) + Xpath (Sélection) + XSL-FO (formatage)

XSLT : Abracadabra pour XML XSLT : XSL Transformations Langage permettant de transformer un fichier XML en un autre fichier XML

Principe de Transformation Un fichier XML : le point de départ Un fichier XSLT : décrit la transformation Fichier XSLT Fichier XML Transformateur XML Transformé Un programme qui réalise la transformation

Exemple cv.xsl cv.xml Firefox cv.html

(1) Lier le fichier XSLT <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?> <cv> <etatcivil> Dans le fichier XML, on ajoute une ligne précisant le fichier XSLT à utiliser

(2) Un premier fichier XSLT <?xml version="1.0" "encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" Xmlns:xsl="http://www.w3.org/1999/XST/Transform"> 1) Début classique d un fichier XML 2) Une ligne pour préciser qu il s agit d un fichier de transformation

<xsl:template match=" "> Entre les guillemets : une expression Xpath Remplace le nœud correspondant par un certain contenu Fonctionne également pour tous le document si on met juste "/"

1er fichier XSLT (debut) <xsl:template match="/animal"> <html> <head> </head> <body> René l'hippopotame </html> </xsl:template> </body>

xsl:value-of <xsl:value-of select="(xpath)"> Est remplacé par le contenu du premier nœud référencé par l expression Si on est à l intérieur d un xsl-template, l expression xpath complète celle du xsltemplate

Xsl:value-of : exemple <xsl-template match="/animal/fiche"> <div class="fiche"> <DIV CLASS="NOM"> <xsl:value-of select="fiche/nom" /> </DIV>... </xsl:template> Récupère le contenu de /animal/fiche/nom

Exercice Complétons notre feuille de style pour récupérer toutes les infos de la partie fiche (sauf le sexe)

Pour l'image? On aurait envie d'écrire : <img src=<xsl-value... > > Impossible! Pas de balises imbriquées! Une syntaxe spéciale : <IMG SRC="{fiche/photo}" /> (entre les acolades : l'expression xpath)

Rajoutons l'image Exercice

Xsl:for-each Xsl:template récupère un seul élément Lorsqu il y a répétition : utiliser xsl:foreach permet de répéter le bloc pour tout élément qui répond à l expression xpath

Xsl:for-each : exemple <xsl:template match="/cv"> <div class="formations"> <xsl:for-each select="formation"> <div class="formation"> <h1> <xsl:value-of select="titre"/></h1> </div> </xsl:for-each> </div> </xsl:template>

xsl:sort Permet de faire un tri à l intérieur d un xsl:for-each Ex : <xsl:sort select="date"/>

xsl:sort : exemple <xsl:for-each select="formation"> <xsl:sort select="date"> <div class="formation"> <h1> <xsl:value-of select="titre"/></h1> </div> </xsl:for-each>

Exercice Complétons la feuille pour avoir les commentaires (pour l'instant, on met tous les commentaires en commentaires veterinaire)

xsl:if Met une sortie, seulement si une condition est remplie <xsl:if test="date=1999"> </xsl:if>

Exemple : Sexe des animaux Indiquez au bon endroit : <xsl:if test="fiche/sexe = 'M'"> <DIV CLASS="SEXE_M" /> </xsl:if> <xsl:if test="fiche/sexe = 'F'"> <DIV CLASS="SEXE_F" /> </xsl:if>

Exercice Idem pour les commentaires (Veterinaire ou Enclos) Attention à respecter Majuscule / Minuscule dans votre test!

Projet Une fois que la page web est terminée, créez la feuille XSLT permettant de transformer vos fichiers XML en fichier XHTML

Mini-projet Ensemble de fichiers XML (5?) Un fichier XSL XHTML DTD