Valid XHTML     Valid CSS2    

Listing du fichier xmlphp.php

 

00001     <?php
00002     error_reporting(
E_ALL E_NOTICE E_STRICT ) ;
00003     include("std.php"
) ;
00004     $XML   
ghRouge("XML") ;
00005     $XPATH 
ghVert("XPATH") ;
00006     $PHP   
ghBleu("PHP") ;
00007     debutPage
("xml via php","strict") ;
00008     debutSection
() ;
00009     
00010     h1
("$XML via $PHP") ;
00011     
00012     p
() ;
00013     echo "
$PHP dispose de nombreuses librairies pour accéder aux fichiers $XML et les traiter. " ;
00014     echo "La page de référence du manuel 
$PHP est " ;
00015     echo href
("http://php.net/manual/fr/refs.xml.php","ici").". " ;
00016     echo " Nous fournissons ci-dessous quelques exemples d'utilisation." 
;
00017     finp
() ;
00018     
00019     p
() ;
00020     echo "Afin de pouvoir reproduire ces exemples, le code-source 
$PHP de cette page est ".href("montresource.php?nomfic=xmlphp.php","ici")."." ;
00021     finp
() ;
00022     
00023     ##########################################################################################
00024     
00025     h2
("1. Utilisation de ".href("http://php.net/manual/fr/book.simplexml.php","SimpleXML")) ;
00026     
00027     ##########################################################################################
00028     
00029     blockquote
() ;
00030     
00031     p
("texte") ;
00032     echo " On peut créer un objet 
$XML à partir du " ;
00033     echo href
("http://php.net/manual/fr/simplexmlelement.construct.php","constructeur") ;
00034     echo " de la classe "
.b("SimpleXMLElement").". Il faut obligatoirement fournir un " ;
00035     echo " paramètre qui est une chaine de caractères correspondant à du code 
$XML bien formé." ;
00036     finp
() ;
00037     
00038     p
("texte") ;
00039     echo " On peut aussi définir un objet 
$XML via la fonction ";
00040     echo href
("http://php.net/manual/fr/function.simplexml-load-string.php","implexml_load_string()").". " ;
00041     finp
() ;
00042     
00043     p
("texte") ;
00044     echo "La lecture d'un fichier 
$XML peut se faire avec la fonction " ;
00045     echo href
("http://php.net/manual/fr/function.simplexml-load-file.php","simplexml_load_file()").". " ;
00046     finp
() ;
00047     
00048     p
("texte") ;
00049     echo " L'objet retourné est de classe "
.b("SimpleXMLElement").", comme l'indique la fonction " ;
00050     echo href
("http://php.net/manual/fr/function.get-class.php","get_class()").". " ;
00051     finp
() ;
00052     
00053     p
("texte") ;
00054     echo " Pour afficher du code 
$XML, on peut se contenter d'appeler la méthode " ;
00055     echo href
("http://php.net/manual/fr/simplexmlelement.asxml.php","asXML()")."." ;
00056     finp
() ;
00057     
00058     p
("texte") ;
00059     echo "Voici un mini-exemple de code 
$PHP correspondant, qui utilise le fichier ".href("mini.xml").". " ;
00060     finp
() ;
00061     
00062     p
() ; echo b("Fichier mini.xml") ; finp() ;
00063     
00064     pre_fichier
("mini.xml","cadre") ;
00065     
00066     p
() ; echo b("Fichier mini01.php") ; finp() ;
00067     
00068     pre_fichier
("mini01.php","cadrebleu") ;
00069     
00070     p
() ; echo b("Résultats d'exécution") ; finp() ;
00071     
00072     pre_fichier
("mini01-sor.txt","cadrejaune") ;
00073     
00074     p
("texte") ;
00075     echo " Pour parcourir les éléments d'un document 
$XML, la méthode " ;
00076     echo href
("http://php.net/manual/fr/simplexmlelement.xpath.php","xpath()") ;
00077     echo " renvoie un tableau d'éléments pour lequel l'itération via "
.href("http://php.net/manual/fr/control-structures.foreach.php","foreach") ;
00078     echo " est possible. " 
;
00079     finp
() ;
00080     
00081     p
("texte") ;
00082     echo " La liste des méthodes de la classe "
.b("SimpleXML")." est " ;
00083     echo href
("http://php.net/manual/fr/class.simplexmlelement.php","ici").". " ;
00084     finp
() ;
00085     
00086     finblockquote
() ;
00087     
00088     ##########################################################################################
00089     
00090     h2
("2. Utilisation de l'API standard nommée ".href("http://php.net/manual/fr/book.dom.php","DOM")) ;
00091     
00092     ##########################################################################################
00093     
00094     blockquote
() ;
00095     
00096     p
("texte") ;
00097     echo "Pour \"servir\" (produire du coté serveur) du 
$XML, " ;
00098     echo " il faut commencer par émettre le bon " 
;
00099     echo href
("http://php.net/manual/fr/function.header.php","header").", soit le code " ;
00100     echo b
("header('Content-type: text/xml')")."." ;
00101     finp
() ;
00102     
00103     p
("texte") ;
00104     echo "On crée un élément via le " 
;
00105     echo href
("http://php.net/manual/fr/domcdatasection.construct.php","constructeur")." de la classe. " ;
00106     echo " On peut fournir un paramètre de numéro de version de 
$XML et un paramètre pour l'encodage." ;
00107     finp
() ;
00108     
00109     p
("texte") ;
00110     echo " On crée des éléments via les méthodes " 
;
00111     echo href
("http://php.net/manual/fr/domdocument.createelement.php","createElement()") ;
00112     echo " et "
.href("http://php.net/manual/fr/domdocument.createtextnode.php","createTextNode()").". " ;
00113     echo " Pour les attributs, " 
;
00114     echo " on dispose des méthodes " 
;
00115     echo href
("http://php.net/manual/fr/domdocument.createattribute.php","createAttribute()") ;
00116     echo ", " 
;
00117     echo href
("http://php.net/manual/fr/domelement.getattribute.php","getAttribute()") ;
00118     echo " et " 
;
00119     echo href
("http://php.net/manual/fr/domelement.setattribute.php","setAttribute()").". " ;
00120     finp
() ;
00121     
00122     p
("texte") ;
00123     echo " Enfin, on ajoute les éléments à l'aide la méthode " 
;
00124     echo href
("http://php.net/manual/fr/domnode.appendchild.php","appendChild()") ;
00125     finp
() ;
00126     
00127     p
("texte") ;
00128     echo " Voici un exemple de code 
$PHP qui utilise DOM&nbsp;:" ;
00129     finp
() ;
00130     
00131     p
() ; echo b("Fichier mini02.php") ; finp() ;
00132     
00133     pre_fichier
("mini02.php","cadrebleu") ;
00134     
00135     p
("texte") ;
00136     echo " Pour tester la génération, il suffit de cliquer sur "
.href("mini02.php","ce lien")."." ;
00137     finp
() ;
00138     
00139     p
() ;
00140     echo "On obtient alors le texte 
$XML suivant (sans le formatage)&nbsp;:" ;
00141     finp
() ;
00142     
00143     pre_fichier
("mini02-sor.txt","cadrejaune") ;
00144     
00145     p
("texte") ;
00146     echo " La liste des méthodes de la classe "
.b("DOMDocument")." est " ;
00147     echo href
("http://php.net/manual/fr/class.domdocument.php","ici").". " ;
00148     finp
() ;
00149     
00150     finblockquote
() ;
00151     
00152     ##########################################################################################
00153     
00154     h2
("3. Exemple de recherche $XPATH avec $PHP") ;
00155     
00156     ##########################################################################################
00157     
00158     
00159     ##########################################################################################
00160     
00161     blockquote
() ;
00162     
00163     p
("texte") ;
00164     echo " Pour un fichier comme ci-dessous&nbsp;:  " 
;
00165     finp
() ;
00166     
00167     pre_fichier
("table.xml","cadrebleu") ;
00168     
00169     p
("texte") ;
00170     echo " on veut récupérer les valeurs de "
.b("Nbligne").", de ".b("NbChiffres")."..." ;
00171     finp
() ;
00172     
00173     p
("texte") ;
00174     echo "On pourrait, une fois le document chargé en mémoire, écrire du code comme" 
;
00175     finp
() ;
00176     
00177     pre_fichier
("xmp-xpath-naif.php","cadre") ;
00178     
00179     p
("texte") ;
00180     echo "Mais il est beaucoup plus propre de faire une petite fonction, comme souvent en 
$PHP&nbsp;:" ;
00181     finp
() ;
00182     
00183     pre_fichier
("xmp-xpath.php","cadrejaune") ;
00184     
00185     finblockquote
() ;
00186     
00187     ##########################################################################################
00188     
00189     finSection
() ;
00190     finPage
() ;
00191     ?>

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)