TUTORIEL PHP 
PHP5 : SimpleXML
SimpleXML est une des deux nouvelles extensions de PHP 5 consacrées à XML, et présente une approche du traitement des fichiers XML mettant en avant la simplicité d'utilisation. (22/09/2004)
<< 1. Modifications de fichiers XML
2. Interopérabilité avec l'extension DOM
3. Codage des caractères
4. Les itérateurs SimpleXML : présentation, Iterator
5. Les itérateurs SimpleXML : RecursiveIterator. Conclusion

Codage des caractères
Les chaînes de caractères manipulés par SimpleXML sont décodées par défaut. SimpleXML utilise la balise initiale du fichier pour devenir l'encodage utilisé, et transforme le texte en UTF-8. Pour avoir un affichage correct, avec un jeu de caractères de votre choix, utilisez la fonction mb_convert_encoding(), de cette manière :

mb_convert_encoding($livre->titre,'iso-8859-1','utf-8');

Si vous précisez le jeu de caractères utilisé dans la balise d'entête XML, SimpleXML assurera la transformation en UTF-* pour vous. Par exemple :

<?xml version="1.0" encoding="iso-8859-1"?>

Limitations :
SimpleXML est une toute nouvelle extension, et se révèle encore jeune. De plus, son approche spécifique du traitement XML, destinée à simplifier la programmation, lui fait laisser de coté l'exhaustivité fonctionnelle que d'autres extensions déploient. Il y a donc une limite naturelle à bien cerner entre les bogues, les fonctionnalités qui seront développées, et celles qui ne seront pas intégrées. Voici quelques limitations connues.

SimpleXML n'est pas capable de gérer les mélanges entre les balises le texte. Par exemple :

<?php
$html = simplexml_load_string('<P>Ceci est une phrase en <font style="font-weight: bolder">gras</font>.</P>');
foreach ($html as $t => $c) {
  print $t." : ".$c."<br />\n";
  }
?>


font : gras<br />

  Forum

Réagissez dans les forums de JDN Développeurs

Au résultat, nous obtenons la balise font, avec le contenu " gras ". Le début et la fin de la phrase ont été supprimé. SimpleXML n'accepte pas le mélange de genres. Pour lui, le contenu d'une balise est soit une autre balise, soit du texte. Dans le second cas, il va générer une chaîne de caractères, et dans le premier, un tableau. Mais si la balise contient en fait un mélange de texte et de balises, alors le texte est simplement ignoré. Il n'est donc pas facile d'analyser du code XHTML avec SimpleXML.

<< 1. Modifications de fichiers XML
2. Interopérabilité avec l'extension DOM
3. Codage des caractères
4. Les itérateurs SimpleXML : présentation, Iterator
5. Les itérateurs SimpleXML : RecursiveIterator. Conclusion
 
Rédaction JDN Développeurs
 
Accueil | Haut de page
 
 





Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages