Définit une zone dans une image-carte
L’extension SimpleXML fournit un moyen simple d'obtenir le nom et le texte de l'élément XML.
PHP SimpleXML gère les tâches les plus courantes de XML et laisse le reste pour les autres extensions comme xml_parser par exemple.
SimpleXML est nouveau introduit en PHP 5.
L’extension SimpleXML fournit un moyen simple d'obtenir le nom et le texte de l'élément XML.
Par rapport aux DOM ou l'analyseur Expert, SimpleXML ne nécessite que quelques lignes de code pour lire les données textuelles d'un élément XML.
SimpleXML convertit le document XML (ou la chaîne XML) dans un objet, comme ceci :
SimpleXML est rapide et facile à utiliser lors de l'exécution de tâches telles que :
Toutefois, lorsqu'il s'agit de XML avancée, c’est mieux d'utiliser l'analyseur Expert ou le XML DOM.
Depuis PHP5, les fonctions SimpleXML font partie de la base PHP. Aucune installation n'est nécessaire pour utiliser ces fonctions.
Supposons que nous avons le fichier XML, "test.xml" du chapitre précédent:
Exemple : Copier le code
<?xmlversion="1.0" encoding="UTF-8"?> <note> <pour>Sara</pour> <de>Yasmine</de> <titre>Invitation</titre> <corps>Venez me voir chez moi ce week-end! </corps> </note>
Maintenant nous voulons sortir différentes informations du fichier XML ci-dessus :
Exemple : Copier le code
<!DOCTYPE html> <html> <body> <?php $xmlDoc=simplexml_load_file("test.xml"); print_r($xmlDoc); ?> </body> </html>
Le résultat du code ci-dessus sera :
SimpleXMLElement Object ( [pour] => Sara [de] => Yasmine [titre] => Invitation [corps] => Venez me voir chez moi ce week-end! )
Exemple : Copier le code
<!DOCTYPE html> <html> <body> <?php $xml=simplexml_load_file("test.xml"); echo$xml->pour . "<br>"; echo$xml->de . "<br>"; echo$xml->titre . "<br>"; echo$xml->corps; ?> </body> </html>
Le résultat du code ci-dessus sera :
Sara
Yasmine
Invitation
Venez me voir chez moi ce week-end!
Voilà nous avons récupéré le te texte des éléments XML du fichier « test.xml ».
Dans l’exemple nous avons simplement affiché ces textes récupérés, mais vous pouvez les stocker dans des variables et en faire ce que bon vous semble.
Exemple : Copier le code
<!DOCTYPE html> <html> <body> <?php $xml=simplexml_load_file("test.xml"); echo$xml->getName() . "<br>"; foreach($xml->children() as $child) { echo $child->getName() . " : " . $child . "<br>"; } ?> </body> </html>
Le résultat du code ci-dessus sera :
note
pour : Sara
de : Yasmine
titre : Invitation
corps : Venez me voir chez moi ce week-end!
Dans l’exemple nous avons récupéré le nom de chaque élément XML par la méthode getName() en utilisant la boucle foreach .
Les flux RSS sont des flux de contenus en XML que les gens peuvent utiliser pour partager des éléments d'information sur des sites Web. Les fonctions SimpleXML de PHP 5 simplifient considérablement le processus d'interprétation de la RSS et la transforment en quelque chose d'utile pour vos pages web.
Dans ce qui suit je vais plus au moins reprendre tout ce que nous venons de voir depuis le début, pour clarifier l’utilisation du simpleXML encor plus et ajouter d’autres choses utiles.
Pour ce faire j’ai créer un fichier XML qui représente une liste de chansons avec le titre de la chanson le nom du chanteur ou artiste et en attribut la date où la chanson est apparue.
Voici le fichier XML :
Exemple : Copier le code
<?xmlversion="1.0" encoding="UTF-8"?> <chansons> <chanson dateparution="1959"><chanteur>Jacques Brel </chanteur><titre>Ne me quitte pas</titre></chanson> <chanson dateparution="1946"> <chanteur>Charles Trenet </chanteur><titre>La mer</titre></chanson> <chanson dateparution="1970"> <chanteur>Barbara</chanteur><titre>L’aigle noir</titre></chanson> <chanson dateparution="1949"> <chanteur>Edith Piaf</chanteur> <titre>Hymne à l’amour</titre></chanson> <chanson dateparution="1970"> <chanteur>Léo Ferré</chanteur><titre>Avec le temps</titre></chanson> <chanson dateparution="1946"> <chanteur>Yves Montand</chanteur> <titre>Les feuilles mortes</titre></chanson> <chanson dateparution="1964"> <chanteur>Georges Brassens</chanteur><titre>Les copains d’abord</titre></chanson> <chanson dateparution="1966"> <chanteur>Charles Aznavour</chanteur><titre>La bohème</titre></chanson> <chanson dateparution="1954"> <chanteur>Georges Brassens</chanteur><titre>Chanson pour l’Auvergnat</titre></chanson> <chanson dateparution="1981"> <chanteur>Céline Dion</chanteur><titre>La Voix du Bon Dieu</titre></chanson> <chanson dateparution="1985"> <chanteur>Yves Duteil</chanteur><titre>La langue de chez nous</titre></chanson> <chanson dateparution="1956"> <chanteur>Jacques Brel</chanteur><titre>Quand on n’a que l’amour</titre></chanson> <chanson dateparution="1962"> <chanteur>Henri Salvador</chanteur><titre>Syracuse</titre></chanson> <chanson dateparution="1962"> <chanteur>Jacques Brel</chanteur><titre>Le plat pays</titre></chanson> <chanson dateparution="1964"> <chanteur>Jacques Brel</chanteur><titre>Amsterdam</titre></chanson> </chansons>
Il ya quelques règles que vous devez respecter lors de la création des données XML. Si vous êtes familier avec XHTML vous serez à l'aise avec eux, mais nous allons les examiner:
XML est un peu plus strict que le HTML, mais il est très facile à créer et à gérer.
Avec simpleXML, c'est aussi facile que la lecture du XML, puis accéder à son contenu à travers un objet facile à lire.
En supposant que nous avons notre fichier XML ci-dessus sauvegardé comme un fichier appelé mes-chansons.xml dans le même dossier que notre fichier php, et comme nous avons vu au début de cet article, on peut lire la totalité du fichier XML en le chargeant dans un objet simpleXML avec le code suivant.
$mesChanson = simplexml_load_file ( 'mes-chansons.xml' );C'est tout!
Le fichier XML peut être même l'URL d'un flux sur le web, et pas seulement un fichier sur votre disque dur.
Nous avons maintenant un objet qui représente notre fichier.
L'objet des chansons a été stocké dans la variable $mesChanson.
Si nous voulons récupérer et afficher le nom du première chanteur dans notre liste, nous pouvons faire comme ceci:
Exemple : Copier le code
$mesChanson = simplexml_load_file ( 'mes-chansons.xml' ); echo $mesChanson -> chanson[ 0 ] -> chanteur ;
Notez que nos balises XML sont mappés en tant que partie de l'objet afin que nous puissions arriver à n'importe quel élément en tapant simplement son nom.
Rappelez-vous aussi que les tableaux sont indexés à partir de 0 en PHP et donc notre premier titre serait notre titre 0 émé.
Maintenant, nous allons récupérer et afficher le troisième titre de la liste des chansons.
Exemple : Copier le code
$mesChanson = simplexml_load_file ( 'mes-chansons.xml' ); echo $mesChanson -> chanson[ 2 ] -> titre;
Afin d'obtenir les dates, nous devons savoir comment accéder aux attributs, la notation est légèrement différente de celle des balises, mais tout aussi facile. En fait, il fonctionne exactement comme l'accès à un élément de tableau avec des crochets et des apostrophes. Voici comment récupérer la date de la deuxième chanson.
Exemple : Copier le code
$mesChanson = simplexml_load_file ( 'mes-chansons.xml' ); echo $mesChanson->chanson[1]['dateparution'];
Alors, maintenant que nous avons les bases d'éléments d’accès, nous allons pouvoir écrire le code pour faire une liste complète de nos chansons analysé en interprétant notre fichier XML.
Exemple : Copier le code
$mesChanson = simplexml_load_file ( 'mes-chansons.xml' ); echo "<ul>"; foreach ($mesChanson as $chantinfo): $titre=$chantinfo->titre; $chanteur=$chantinfo->chanteur; $date=$chantinfo['dateparution']; echo "<li><span>",$titre,"</span> <span> par ",$chanteur,"</span> <time>",$date,"</time></li>"; endforeach; echo "</ul>";
Nous utilisons ici une boucle foreach pour passer en revue chaque chanson et puis l'analyse de l'information que nous affichons dans une liste HTML simple.
Vous pouvez l'utiliser dans un document HTML standard ou l'utiliser comme un widget pour afficher une liste de chansons.
TELECHRGER LE CODE SOURCE COMPLET DES EXEMPLES DE CE TUTORIAL
chapitre précédent | sommaire | chapitre suivant |