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 :" ;
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) :" ;
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 : " ;
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 :" ;
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 à la page principale de (gH)