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)