INFO0406. Arnaud Renard. Arnaud Renard (URCA) INFO / 44

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

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

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

SYSTÈMES D INFORMATIONS

Module http MMS AllMySMS.com Manuel d intégration

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

4. SERVICES WEB REST 46

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

Architecture Orientée Service, JSON et API REST

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

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

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

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

HTML, CSS, JS et CGI. Elanore Elessar Dimar

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

Programmation Web. Madalina Croitoru IUT Montpellier

TP JAVASCRIPT OMI4 TP5 SRC

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

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

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

Petite définition : Présentation :

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

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

SII Stage d informatique pour l ingénieur

Formation Découverte du Web

La base de données XML exist. A. Belaïd

Formation HTML / CSS. ar dionoea

PHP 5. La base de données MySql. A. Belaïd 1

BES WEBDEVELOPER ACTIVITÉ RÔLE

CREATION WEB DYNAMIQUE

Programmation des Applications Réparties. Parsers XML DOM et SAX

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

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

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

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

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

Adobe Technical Communication Suite 5

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

BIRT (Business Intelligence and Reporting Tools)

Document Object Model (DOM)

Les outils de création de sites web

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

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

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

DOM - Document Object Model

FileMaker Server 12. publication Web personnalisée avec XML

Echosgraphik. Ce document sert uniquement à vous donner une vision sur ma manière de travailler et d appréhender un projet

Manuel d intégration API FTP SMS ALLMYSMS.COM

Formation en Logiciels Libres. Fiche d inscription

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)

Travaux dirigés n 10

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

Programmation Web Avancée Introduction aux services Web

Tutoriel : Feuille de style externe

Master d Informatique Corrigé du partiel novembre 2010

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Cahier des charges Site Web Page 1 sur 9

Programmation Internet Cours 4

Les bases de données

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

Formation : WEbMaster

Pratique et administration des systèmes

Les services usuels de l Internet

Gestion documentaire (Extraits du CCI version 1.2)

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Le réseau Internet.

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

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

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

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

Spétechs Mobile. Octobre 2013

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

BD et XML : Exercices

PHP 4 PARTIE : BASE DE DONNEES

Mysql avec EasyPhp. 1 er mars 2006

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

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

SITE I NTERNET. Conception d un site Web

RESPONSIVE WEB DESIGN

Les 10 étapes incontournables pour réaliser un site internet performant et accessible

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

Intégrateur Web HTML5 CSS3

PARAMETRAGE CONSOLE ADMINISTRATION DE MESSAGERIE "VENDOME.EU" NOTICE UTILISATION

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

as Architecture des Systèmes d Information

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

TIC 12 ATELIER INTEGRATION CAHIER DES CHARGES. Page 1/5

agence de création digitale 1 sur10

Infrastructure de Données Spatiales

Les Services Web. Jean-Pierre BORG EFORT

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

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

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

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

BASE DE DONNÉES XML NATIVE

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

PHP et les Bases de données - Généralités

Transcription:

INFO0406 Arnaud Renard arnaud.renard@univ-reims.fr Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 1 / 44

Introduction / Rappels XML Extensible Markup Language Transporter et stocker des données (encodage) Langage de description (cf Latex) Arborescence (cf Html) Éléments, attributs (frères, père, fils) Document bien formé (Well Formed) XML documents must have a root element XML elements must have a closing tag XML tags are case sensitive XML elements must be properly nested XML attribute values must be quoted DTD : Document Type Definition Défini la structure d un document Document valide Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 2 / 44

Plan 1 Rappels 2 Affichage du XML Affichage arborescent Utilisation des CSS 3 Créer et manipuler du XML en PHP SimpleXML DomDocument Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 3 / 44

Plan 1 Rappels 2 Affichage du XML Affichage arborescent Utilisation des CSS 3 Créer et manipuler du XML en PHP SimpleXML DomDocument Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 4 / 44

Plan 1 Rappels 2 Affichage du XML Affichage arborescent Utilisation des CSS 3 Créer et manipuler du XML en PHP SimpleXML DomDocument Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 5 / 44

XML et affichage Affichage en ligne xml chargé dans le navigateur Application de style utilisation des CSS définition de la hiérarchie des éléments Transformation automatique mise en place d un langage évolué de transformation utilisable sur le client et sur le serveur Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 6 / 44

Plan 1 Rappels 2 Affichage du XML Affichage arborescent Utilisation des CSS 3 Créer et manipuler du XML en PHP SimpleXML DomDocument Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 7 / 44

XML dans le navigateur Affichage d un document XML vérification de la structure par le navigateur vérification de l en-tête du document vérification de la structure du document affichage uniquement sans erreur affichage déployable de "l arbre" Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 8 / 44

XML dans le navigateur <?xml version= " 1.0 " encoding= "UTF 8" standalone= " yes "?> <carnet> <personne> <nom>renard< / nom> <prenom>arnaud< / prenom> <adresse>dans son bureau< / adresse> < / personne> <personne> <nom>steffenel< /nom> <prenom>luiz Angelo< / prenom> <adresse>chez l u i < / adresse> < / personne> < / carnet> Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 9 / 44

XML dans le navigateur : une erreur <?xml version= " 1.0 " encoding= "UTF 8" standalone= " yes "?> <carnet> <personne> <nom>renard< / nom> <prenom>arnaud< / prenom> <adresse>dans son bureau< / adresse> < / personne> <personne> <nom>steffenel< /nom> <prenom>luiz Angelo< / prenom> <adresse>chez l u i < / adresse> < / personne> Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 10 / 44

Plan 1 Rappels 2 Affichage du XML Affichage arborescent Utilisation des CSS 3 Créer et manipuler du XML en PHP SimpleXML DomDocument Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 11 / 44

Rappel sur les CSS Objectif assurer la définition de la mise en forme permettre la séparation du contenu et de la mise en forme Mise en oeuvre définition dans une zone du fichier HTML définition dans un fichier externe et inclusion : < l i n k r e l =" s t y l e s h e e t " type =" t e x t / css " h r e f =" f e u i l l e _ d e _ s t y l e. css " / > Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 12 / 44

Principe des CSS Définition association propriété, valeur p r o p r i é t é : v a l e u r ; applicable à tout un type de balise une hiérarchie de balise définition de classes de styles p { } t e x t a l i g n : center ; c o l o r : t e a l ; Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 13 / 44

Fichier XML carnet.xml <?xml version=" 1.0 " encoding= "UTF 8"?> <?xml s t y l e s h e e t href= " carnet. css " type= " t e x t / css "?> <carnet> <personne> <nom>renard< / nom> <prenom>arnaud< / prenom> <adresse>dans son bureau< / adresse> < / personne> <personne> <nom> S t e f f e n e l < /nom> <prenom>luiz Angelo< / prenom> <adresse>chez < / personne> < / carnet> l u i < / adresse> Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 14 / 44

Définition du CSS carnet.css carnet { background :#58 ae32 ; padding :10 px 0px ; border l e f t :50 px #93d14e s o l i d ; } personne { d i s p l a y : block ; border :1 px #666666 s o l i d ; background :# f f f f f f ; padding :1 px ; width :200 px ; margin :20 px auto ; } nom { d i s p l a y : block ; background c o l o r :#666666; padding :0 10px ; font weight : bold ; c o l o r :# dddddd ; t e x t transform : uppercase ; } prenom { d i s p l a y : block ; padding :0 10px ; } adresse { d i s p l a y : block ; c o l o r : blue ; padding :0 10px ; font s t y l e : i t a l i c } Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 15 / 44

Résultat Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 16 / 44

Définition du CSS carnet.css carnet { border top :20 px s o l i d #cc0404 ; font f a m i l y : a r i a l ; } personne { d i s p l a y : block ; border bottom :20 px s o l i d #cc0404 ; } nom { padding :0 10px ; } prenom { } adresse { d i s p l a y : block ; padding :2 px 35px ; background :#257301 u r l ( ask. png ) no repeat ; c o l o r :# f f f f f f ; } Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 17 / 44

Résultat Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 18 / 44

XML + CSS Apport Limites mise en forme des documents XML simple et intégrable pas de génération intermédiaire CSS n est pas un langage de programmation pas d itération, conditionnelles pas de traitement (tri) limité à la visualisation sur le client géré par le client uniquement : risque d incompatibilité pas de génération de HTML à suivre : XSLT (Extensible Stylesheet Language Transformation) Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 19 / 44

Plan 1 Rappels 2 Affichage du XML Affichage arborescent Utilisation des CSS 3 Créer et manipuler du XML en PHP SimpleXML DomDocument Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 20 / 44

Utiliser XML en PHP Solution codage manuel des opérations gestion des chaînes de caractères, expressions régulières... utilisation de structure élémentaires de gestion XML utilisation directe d une bibliothèque de bas niveau libxml recommandation du W3C qui décrit DOM-XML (interface indépendante de tout langage) utilisation d une bibliothèque spécifique : XMLReader / XMLWriter (php4) SimpleXML (php5) Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 21 / 44

Plan 1 Rappels 2 Affichage du XML Affichage arborescent Utilisation des CSS 3 Créer et manipuler du XML en PHP SimpleXML DomDocument Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 22 / 44

SimpleXML Caractéristiques opérations de base XML permet la création, manipulation de documents XML bibliothèque objet (SimpleXMLElement) fournie en standard dans PHP (depuis php5) Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 23 / 44

Utilisation Programmation objet création d un objet SimpleXML vide à partir d une chaîne de caractères item à partir d un fichier local ou distant (uri) manipulation à l aide des méthodes manipulation des noeuds XML manipulation des attributs retour sauvegarde dans un fichier texte affichage en ligne Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 24 / 44

Construction d un objet SimpleXMLElement A partir d une chaîne <?php $chaine = <<<XML <?xml version= 1.0?> <personne > <nom> S t e f f e n e l </nom> <prenom> Luiz Angelo </ prenom> <adresse >chez l u i </ adresse > </ personne > XML; $xml = new SimpleXMLElement ( $chaine, NULL, false ) ; / / ou $xml = simplexml_load_string ( $chaine ) ;?> Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 25 / 44

Construction d un objet SimpleXMLElement A partir d un URI <?php $ u r i = h t t p : / / example. org / document. xml ; $xml = new SimpleXMLElement ( $ u r i, NULL, true ) ; / / ou $xml = new s i m p l e x m l _ l o a d _ f i l e ( $ u r i ) ;?> A partir d un fichier <?php $xml = new SimpleXMLElement (. / document. xml,null, true ) ; / / ou $xml = new s i m p l e x m l _ l o a d _ f i l e (. / document. xml ) ;?> Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 26 / 44

Création et ajout de SimpleXMLElements <?php $xml = new SimpleXMLElement ( " <carnet > </ carnet > " ) ; $personne = $xml >addchild ( " personne " ) ; $personne >addchild ( "nom", " Renard " ) ; $personne >addchild ( " prenom ", " Arnaud " ) ; $personne >addchild ( " adresse ", " dans son bureau " ) ; $personne = $xml >addchild ( " personne " ) ; $personne >addchild ( "nom", " S t e f f e n e l " ) ; $personne >addchild ( " prenom ", " Luiz Angelo " ) ; $personne >addchild ( " adresse ", " chez l u i " ) ; echo " <pre > " ; echo $xml >asxml ( ) ; echo " </ pre > " ;?> Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 27 / 44

Affichage d un SimpleXMLElement <?xml version= " 1.0 "?> <carnet> <personne> <nom>renard< / nom> <prenom>arnaud< / prenom> <adresse>dans son bureau< / adresse> < / personne> <personne> <nom> S t e f f e n e l < /nom> <prenom>luiz Angelo< / prenom> <adresse>chez < / personne> < / carnet> l u i < / adresse> Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 28 / 44

Affichage d un SimpleXMLElement avec print_r SimpleXMLElement Object ( [ personne ] => Array ( [ 0 ] => SimpleXMLElement Object ( [ nom] => Renard [ prenom ] => Arnaud [ adresse ] => dans son bureau ) [ 1 ] => SimpleXMLElement Object ( [nom] => S t e f f e n e l [ prenom ] => Luiz Angelo [ adresse ] => chez l u i ) ) ) Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 29 / 44

Document mal formé <?php $chaine = <<<XML <?xml version= 1.0?> <personne > <nom> S t e f f e n e l </nom> <prenom>luiz Angelo </ prenom> <adresse >chez l u i </ personne > XML; t r y { $xml = @new SimpleXMLElement ( $chaine ) ; } catch ( Exception $e ) { p r i n t _ r ( $e ) ; die ( " Erreur dans l a chaine xml " ) ; }?> Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 30 / 44

Document mal formé : affichage Exception Object ( [ message:protected ] => S t r i n g could not be parsed as XML [ s t r i n g : E x c e p t i o n : p r i v a t e ] => [ code: protected ] => 0 [ f i l e : p r o t e c t e d ] => C: \wamp\www\ simplexml \ xml. php [ l i n e : p r o t e c t e d ] => 29 [ t r a c e : E x c e p t i o n : p r i v a t e ] => Array ( [ 0 ] => Array ( [ f i l e ] => C: \wamp\www\ simplexml \ xml. php [ l i n e ] => 29 [ f u n c t i o n ] => construct [ class ] => SimpleXMLElement [ type ] => > [ args ] => Array ( [ 0 ] => <?xml version= 1.0?> <personne> <nom> S t e f f e n e l < / nom> <prenom>luiz Angelo< / prenom> <adresse>chez l u i < / personne> ) ) ) [ p r e v i o u s : E x c e p t i o n : p r i v a t e ] => ) Erreur dans l a chaine xml Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 31 / 44

Parcourir un document Référence <?xml version= " 1.0 "?> <carnet date= 02/02/2010 > <personne> <nom>renard< / nom> <prenom>arnaud< / prenom> <adresse type= t r a v a i l s u p e r f i c i e = 2 >dans son bureau < / adresse> < / personne> <personne> <nom> S t e f f e n e l < /nom> <prenom>luiz Angelo< / prenom> <adresse type= maison s u p e r f i c i e = 400 >chez l u i < / adresse> < / personne> < / carnet> Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 32 / 44

Parcourir un document : nom d un élément Code PHP echo $xml >getname ( ) ; Affichage carnet Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 33 / 44

Parcourir un document Code PHP echo $xml >personne [0] >nom. " \ n " ; echo $xml >personne [1] >nom. " \ n " ; Affichage Renard Steffenel Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 34 / 44

Parcourir un document Code PHP foreach ( $xml as $a => $b ) echo " $a=> ". $b >nom. " \ n " ; Affichage Renard Steffenel Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 35 / 44

Parcourir un document Code PHP foreach ( $xml >c h i l d r e n ( ) as $a => $b ) echo " $a=> ". $b >nom. " \ n " ; Affichage personne=>renard personne=>steffenel Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 36 / 44

Parcourir un document : les attribut Code PHP echo $xml [ " date " ] ; echo $xml >personne [1] > adresse [ " type " ] ; Affichage 02/02/2010 maison Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 37 / 44

Parcourir un document : liste des attribut Code PHP foreach ( $xml >personne [0] >adresse > a t t r i b u t e s ( ) as $a => $b ) echo " $a => $b \ n " ; Affichage type=>travail superficie=>2 Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 38 / 44

Parcourir un document : suppression d élément et d attribut Code PHP unset ( $xml >personne [ 0 ] ) ; unset ( $xml [ " date " ] ) ; unset ( $xml >personne [0] > adresse ) ; Résultat <?xml version= " 1.0 "?> <carnet> <personne> <nom> S t e f f e n e l < /nom> <prenom>luiz Angelo< / prenom> < / personne> < / carnet> Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 39 / 44

Récapitulatif SimpleXML SimpleXMLElement - La classe SimpleXMLElement SimpleXMLElement::addAttribute - Ajoute un attribut à l élément SimpleXML SimpleXMLElement::addChild - Ajoute un élément enfant au noeud XML SimpleXMLElement::asXML - Retourne une chaîne XML basée sur un élément SimpleXML SimpleXMLElement::attributes - Identifie les attributs d un élément SimpleXMLElement::children - Cherche les fils d un noeud donné SimpleXMLElement:: construct - Crée un nouvel objet SimpleXMLElement SimpleXMLElement::getDocNamespaces - Retourne les espaces de noms déclarés dans un document SimpleXMLElement::getName - Récupère le nom d un élément XML SimpleXMLElement::getNamespaces - Retourne les espaces de noms utilisés dans un document SimpleXMLElement::registerXPathNamespace - Crée un contexte préfixe/ns pour la prochaine requête XPath SimpleXMLElement::xpath - Exécute une requête Xpath sur des données XML Fonctions SimpleXML simplexml_import_dom - Construit un objet SimpleXMLElement à partir d un objet DOM simplexml_load_file - Convertit un fichier XML en objet simplexml_load_string - Convertit une chaîne XML en objet Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 40 / 44

SimpleXML : XPath Code PHP $xml = new SimpleXMLElement ( $ s t r i n g ) ; $ r e s u l t = $xml >xpath ( " / / adresse [ {@} type ] " ) ; foreach ( $ r e s u l t as $node ) echo $node. " \ n " ; Affichage dans son bureau chez lui Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 41 / 44

Plan 1 Rappels 2 Affichage du XML Affichage arborescent Utilisation des CSS 3 Créer et manipuler du XML en PHP SimpleXML DomDocument Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 42 / 44

Extention DOM : Validation DTD L extension DOM est le remplacement de l extension DOM XML en php4 et permet de manipuler des documents XML avec l API DOM. Code PHP <?php $ x m l f i l e = " f i c h i e r. xml " ; / / create the DOMDocument o b j e c t $xdoc = new DomDocument ; / / Load the xml document i n the DOMDocument o b j e c t $xdoc >Load ( $ x m l f i l e ) ; / / V a l i d a t e the XML f i l e against the DTD i f ( $xdoc >v a l i d a t e ( ) ) echo " $ x m l f i l e est v a l i d e selon sa DTD. " ; else echo " $ x m l f i l e est i n v a l i d e selon sa DTD. " ;?> Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 43 / 44

Extention DOM : Validation XML-Schema Á l instar de DTD, XML-Schema permet de décrire la structure d un document XML. Code PHP <?php $ x m l f i l e = " f i c h i e r. xml " ; $xmlschema = " f i c h i e r. xsd " ; / / create the DOMDocument o b j e c t $xdoc = new DomDocument ; / / Load the xml document i n the DOMDocument o b j e c t $xdoc >Load ( $ x m l f i l e ) ; / / V a l i d a t e the XML f i l e against the XML Schema i f ( $xdoc >schemavalidate ( $xmlschema ) ) echo " $ x m l f i l e est v a l i d e selon $xmlschema. \ n " ; else echo " $ x m l f i l e est i n v a l i d e selon $xmlschema. \ n " ;? > Arnaud Renard (URCA) INFO0406 arnaud.renard@univ-reims.fr 44 / 44