INFO0406 - CM2 Exemple : flux RSS XML dans le navigateur XML dans ...

De
Publié par

INFO0406 - CM2 Exemple : flux RSS XML dans le navigateur XML dans ...

Publié le : jeudi 21 juillet 2011
Lecture(s) : 80
Nombre de pages : 5
Voir plus Voir moins
Arnaud Renard(URCA)
INFO0406 - CM2
Arnaud Renard
arnaud.renard@univ-reims.fr
INFO0406 - CM2
XML dans le navigateur
<?xml version= " 1 . 0 "encoding= " UTF8"standalone= " yes " ?> < c a r n e t > <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> Lui zAngelo< / prenom> <adresse>chez lu i < / adresse> < / personne> < / c a r n e t >
Arnaud Renard(URCA)
Fichier XML
INFO0406 - CM2
arnaud.renard@univ-reims.fr 1/ 45
arnaud.renard@univ-reims.fr 9/ 45
carnet.xml <?xml ve r s i o n = " 1 . 0 "encodi ng = " UTF8" ?> <?xmls t y l e s h e e th r e f. css "= " c a r n e ttypet e x t/ css " ?>= " < c a r n e t > <personne> <nom>Renard< / nom> <prenom>Arnaud< / prenom> < adresse >dansson bureau</ adresse> < / personne> <personne> <nom> S t e f f e n e l< / nom> <prenom> L u i zAngelo< / prenom> < adresse >chezl u i < / adresse > < / personne> < /c a r n e t >
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 14/ 45
Exemple : flux RSS
<?xml versionencoding= " u t f= " 1 . 0 "8" ?> < r s sversion= " 2 . 0 " > <channel > < t i t l e > A c t u a l i t éde l Equipede France< /t i t l e> < l i n k > h t t p :/ / www. f f f . f r / b l e u s / a c t u / < / l i n k > < d e s c r i p t i o n > A c t u a l i t éde l Equipede France de Fo o t b a l ls u rf f f . f r < / d e s c r i p t i o n > < i t e m > < t i t l e >Hoarau: "Bien de po u v o i rse ja u g e r " < /t i t l e > < l i n k > h t t p :/ / www. f f f . f r / b l e u s / a c t u / 5 3 6 3 6 3 . s h t ml < / l in k > < d e s c r i p t i o n >Gui l l aumeHoarau re c o n n a î tavant le match ami c a lc o n t r el eB r é s i lmer cr edi, qu<pubDate>20110207</pubDate > </ item > <item > < t i t l e>Blanc : "Jouer avec nos va l e u r s " < /t i t l e> < l i n k > h t t p :/ / www. f f f . f r / b l e u s / a c t u / 5 3 6 3 6 1 . shtml < / l in k > < d e s c r i p t i o n >Enc onf ér enc ede presse lu n d ià Cl a i r e f o n t a i n e, le sé l e c t i o n n e u rde l Equipede <pubDate>20110207</pubDate > </ item > <item > < t i t l e>Avant l e n t r a î n e me n t . . . < / t i t l e > < l i n k > h t t p :/ / www. f f f . f r / b l e u s / a c t u / 5 3 6 3 5 6 . s h t ml < / l in k > < d e s c r i p t i o n > A r r i v é sce mi d imême àC l a i r e f o n t a i n e, le sj ou e u r sde l Equipede France on t<pubDate>20110207</pubDate > </ item > <item > < t i t l e>Coup d e n v o idu stage à Cl a i r e f o n t a i n e < /t i t l e > < l i n k > h t t p :/ / www. f f f . f r / b l e u s / a c t u / 5 3 6 3 5 2 . s h t ml < / l in k > < d e s c r i p t i o n >At r o i sj o u r sdu match ami c a lf a c eaux Br é s i l ie n sau Stade de France, le shomm <pubDate>20110207< / pubDate> < / i t e m > < / channel > < / r s s > Arnaud Renard(URCA) INFO0406- CM2arnaud.renard@univ-reims.fr 4/ 45
XML dans le navigateur : une erreur
<?xml versionencoding= " UTF= " 1 . 0 "8"standalone= " yes " ?> < c a r n e t > <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> Lui zAngelo< / prenom> <adresse>chez lu i < / personne>
Arnaud Renard(URCA)
Définition du CSS
INFO0406 - CM2
arnaud.renard@univ-reims.fr 10/ 45
carnet.css c a r n e t{ background : #5 8 ae32 ;padding : 1 0 px0px ; b o r d e r#93d14e s0 px; }o l i dl e f t : 5 personne {d i s p l a y: bl o c k; bo r d e r: 1 px#666666 so l i d; background : #f f f f f f; padding :1 px ; w i d t h : 2 0 0 px ; margin : 2 0 pxa u t o; } nom {d i s p l a y: bl o c k; backgroundc o l o r : # 6 6 6 6 6 6 ; padding : 010px ; f o n t: bo l dw e i g h t; c o l o r: # dddddd ;t e x t: uppercase ; }t r a n s f o r m prenom {d i s p l a y: bl o c k; padding :0 10px; } adresse {d i s p l a y: bl o c k; co l o r: bl u e; padding : 010px ; f o n t}t a l i cs t y l e: i
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 15/ 45
Résultat
Arnaud Renard(URCA)
Résultat
Arnaud Renard(URCA)
INFO0406 - CM2
INFO0406 - CM2
arnaud.renard@univ-reims.fr 16/ 45
arnaud.renard@univ-reims.fr 18/ 45
Construction dun objetSimpleXMLElement
A partir dun URI
<?php $ u r i =  h t t p: / / example . o r g / document . xm l ; $xm l= new SimpleXM LElem ent ($ u r i, NULL ,t r u e) ; / /ou $xm l= si m p l e x m l _ l o a d _ f i l e( $ u r i ) ; ?>
A partir dun fichier
<?php $ f i l e= . / document . x m l  ; $xm l= new SimpleXM LElem ent ($ f i l e, NULL,t r u e) ; / /ou $xm l= si m p l e x m l _ l o a d _ f i l e( $ f i l e ) ; ?>
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 26/ 45
Définition du CSS
carnet.css c a r n e t{ bo r d e r#cc0404 ;s o l i dt o p : 2 0 px f o n tr i a l; }f a m i l y: a personne {d i s p l a y: bl o c k; b o r d e rbottom : 2 0 px#cc0404 ; }s o l i d nom {padding : 010px ; } prenom {} adresse {d i s p l a y: bl o c k; padding :2 px35px ; background :#257301u r l( ask . png )no;r e p e a t c o l o r: #f f f f f f; }
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 17/ 45
Construction dun objetSimpleXMLElement
A partir dune chaîne
<?php $ c h a i n e= <<<XML <? xmlv e r s i o n = 1 . 0 ?> <personne > <nom> S t e f f e n e l< / nom> <prenom> L u i zAngelo < / prenom> < adresse >chezl u i< / adresse > < / personne > XML ;
$xml = new SimpleXMLElement( $c h a in e, NULL ,f a l s e) ; / /ou $xml = si m p l e x m l _ l o a d _ s t r i n g( $c h a i n e) ; ?>
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 25/ 45
Création et ajout deSimpleXMLElements
<?php $xm l= new SimpleXM LElem ent (" < c a r n e t > < / c a r n e t > ") ;
$ p e rs o n n e= $xml>a d d C h i l d (" p e r s o n n e " ) ; $ p e rs o n n e" nom ", " Renard " ) ;>a d d C h i l d ( $ p e rs o n n e" prenom ">a d d C h i l d (rnaud " ) ;, " A $ p e rs o n n e) ;son bu r e a u "" a d r e s s e " , " dans>a d d C h i l d (
$ p e rs o n n e= $xml" p e r s o n n e " ) ;>a d d C h i l d ( $ p e rs o n n e, " S t e f f e n e l " ) ;" nom ">a d d C h i l d ( $ p e rs o n n e>a d d C h i l d (" prenom ", " L u i zA n g e lo ") ; $ p e rs o n n el u i " ) ;" a d r e s s e " , " chez>a d d C h i l d (
echo echo echo ?>
" < p r e > "; $xm l>asXML ( ) ; " </ p r e > " ;
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 27/ 45
Affichage dunSimpleXMLElement
<?xml version= " 1 . 0 " ?> < c a r n e t > <personne> <nom>Renard< / nom> <prenom>Arnaud< / prenom> < adresse >dansson bureau</ adresse> < / personne> <personne> <nom> S t e f f e n e l < / nom> <prenom> L u i zAngelo< / prenom> < adresse >chezl u i < / adresse > < / personne> < /c a r n e t >
Arnaud Renard(URCA)
Document mal formé
INFO0406 - CM2
<?php $ c h a i n e= <<<XML <? x m lv e r s i o n =  1 . 0 ?> < p e rs o n n e > <nom> S t e f f e n e l< / nom> <prenom > L u i z< / prenom >A n g e lo < a d r e s s e > chezl u i < / p e rs o n n e > XML ; t r y{ $xm l= @new SimpleXM LElem ent ($ c h a i n e) ; } ca t c h( E x c e p t i o n$e ){ p r i n t _ r( $e ) ; d i e( " E r r e u ra cdans lx m l "h a i n e) ; } ?>
Arnaud Renard(URCA)
Parcourir un document
INFO0406 - CM2
arnaud.renard@univ-reims.fr 28/ 45
arnaud.renard@univ-reims.fr 30/ 45
Référence <?e r s i o nxml v= " 1 . 0 " ?> < c a r n e td a t e = 0 2 / 0 2 / 2 0 1 0  > < p e r s o n n e > <nom>Renard< / nom> <prenom> A rnaud < / prenom> < a d r e s s et y p e = t r a v a i l s u p e r f i c i e =  2  >dansson bu r e a u < / a d r e s s e > < / p e r s o n n e > < p e r s o n n e > <nom> S t e f f e n e l < / nom> <prenom> L u i zA n g e lo < / prenom> < a d r e s s et y p e = m aison s u p e r f i c i e =  400  > chezl u i < / a d r es s e > < / p e r s o n n e > < / c a r n e t >
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 32/ 45
Affichage dunSimpleXMLElementavecprint_r
Sim pleXM LElem entO b j e c t ( [ pe r s o n n e] => Ar r a y ( [ 0 ]=> SimpleXM LElem entO b j e c t ( [ nom ]=> Renard [ prenom ]=> Arnaud [ ad r e s s e] => dans son bu r e a u ) [ 1 ]=> SimpleXM LElem entO b j e c t ( [ nom ]=> St e f f e n e l [ prenom ]=> Lu i zA n g e lo [ ad r e s s e] => chez lu i ) ) )
Arnaud Renard(URCA)
INFO0406 - CM2
Document mal formé : affichage
arnaud.renard@univ-reims.fr 29/ 45
E x c e p t i o nO b j e c t( [ m e s s a g e : p r o t e c t e d ]=> St r i n gc o u l dn o tbe pa r s e da sXML [ s t r i n g : E x c e p t i o n : p r i v a t e ]=> [ c o d e : p r o t e c t e d ]=> 0 [ f i l e : p r o t e c t e d ]=> C: \ wamp \ www \ s i m p l e X m l \ x m l . 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 ]=> Ar r a y( [ 0 ]=> Ar r a y( [ f i l e ]=> C: \ wamp \ www \ s i m p l e X m l \ x m l . php [ l i n e ]=> 29 [ f u n c t i o n ]=> __ c o n s t r u c t [ c l a s s ]=> Sim p le X M L E le m e n t [ t y p e ]=>> [ a r g s ]=> Ar r a y( [ 0 ]=> <?v e r s i o nxm l=  1 .0 ?> < p e r s o n n e > <nom> S t e f f e n e l < / nom> < prenom > L u i zA n g e l o < / prenom > < a d r e s s e > c h e zl u i < / p e r s o n n e > ) )) [ p r e v i o u s : E x c e p t i o n : p r i v a t e ]=> ) E r r e u rd a n sl ac h a i n ex m l Arnaud Renard(URCA) INFO0406- CM2arnaud.renard@univ-reims.fr 31/ 45
Parcourir un document : nom dun élément
Code PHP echo$xml>getName ( ) ;
Affichage
carnet
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 33/ 45
Parcourir un document
Code PHP echo$xml>personne [0]>nom ." \ n" ; echo$xml>personne [1]>nom ." ;" \ n
Affichage
Renard Steffenel
Arnaud Renard(URCA)
Parcourir un document
INFO0406 - CM2
arnaud.renard@univ-reims.fr 34/ 45
Code PHP foreach( $xmlas $a => $b( )> c h i l d r e n) echo" $a=> ". $b>nom ." \ n" ;
Affichage
personne=>Renard personne=>Steffenel
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 36/ 45
Parcourir un document : liste des attribut
Code PHP f o r e a c h( $xm l>p e r s o n n e [0 ]> a d r e s s eas $a => $b( )> a t t r i b u t e s) echo=> $b" $a ;\ n "
Affichage
type=>travail superficie=>2
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 38/ 45
Parcourir un document
Code PHP foreach( $xml)as $a => $b echo. $b" $a=> ">nom ." \ n" ;
Affichage
Renard Steffenel
Arnaud Renard(URCA)
INFO0406 - CM2
Parcourir un document : les attribut
arnaud.renard@univ-reims.fr 35/ 45
Code PHP echo$xml [ " da t e;" ] echo$xml>personne [1]" ty p e" ];> adresse [
Affichage
02/02/2010 maison
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 37/ 45
Parcourir un document : suppression délément et dattribut
Code PHP unset( $xm l>p e r s o n n e[ 0 ] ) ; unset( $xm l [ " d a t e "] ) ; unset( $xm l>p e r s o n n e [0 ]> a d r e s s e ) ;
Résultat <?xml ve r s i o n= " 1 . 0 " ?> < c a r n e t > < p e r s o n n e > <nom> S t e f f e n e l < / nom> <prenom> L u i zA n g e lo < / prenom> < / p e r s o n n e > < / c a r n e t >
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 39/ 45
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 - CM2
ExtentionDOM: ValidationDTD
arnaud.renard@univ-reims.fr 41/ 45
LextensionDOMest le remplacement de lextensionDOM XMLenphp4 et permet de manipuler des documentsXMLavec lAPIDOM. Code PHP
<?php $ x m l f i l e= "f i c h i e r. xm l "; / /c r e a t et h eDOMDocument ob j e c t $xdoc = new DomDocument; / /Load th ex m ldocument in th eDOMDocument ob j e c t $xdoc) ;>Load ( $ x m l f i l e / /V a l i d a t et h eXML fi l ea g a i n s tt h eDTD i f( $xdoc( ) )> v a l i d a t e echo. " ;sa DTDs e l o nv a l i d ee s t" $ x m l f i l e e l s e echos e l o ni n v a l i d e. " ;sa DTDe s t" $ x m l f i l e ?>
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 44/ 45
SimpleXML : XPath
Code PHP $xm l= new SimpleXM LElem ent ($ s t r i n g) ;
$ r e s u l t= $xmld r e s s e" / / a>x p a t h ([ {@} t y p e ] " ) ;
f o r e a c h( $ r e s u l tas $node) echo$node . " \ n " ;
Affichage
dans son bureau chez lui
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 42/ 45
ExtentionDOM: ValidationXMLSchema
Á linstar deDTD,XMLSchemapermet 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. xm l "; $xmlschema = "f i c h i e r. xs d "; / /c r e a t et h eDOMDocument ob j e c t $xdoc = new DomDocument; / /Load th ex m ldocument in th eDOMDocument ob j e c t $xdoc>Load ( $ x m l f i l e) ; / /V a l i d a t et h eXML fi l ea g a i n s tt h eXMLSchema i f( $xdoc>s c h e m a V a l i d a t e ( $xmlschema ) ) echos e l o n$xmlschema . \ n " ;e s tv a l i d e" $ x m l f i l e e l s e echo? >$xmlschema . \ n " ;s e l o ni n v a l i d ee s t" $ x m l f i l e
Arnaud Renard(URCA)
INFO0406 - CM2
arnaud.renard@univ-reims.fr 45/ 45
Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.