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

RecursiveIterator

L'autre héritage de SimpleXMLIterator, RecursiveIterator, fournit une interface universelle pour les données hiérarchisées. Il complète l'Iterator par deux méthodes supplémentaires : hasChildren() et getChildren(). La première méthode retourne un booléen pour indiquer que l'élément courant contient des sous-éléments : true si oui, et false si non. Si hasChildren() contient des sous-éléments, vous pouvez appeler la méthode getChildren() pour obtenir une nouvelle liste manipulable avec la même interface SimpleXMLIterator. Voici un exemple :

<?php
$xml =<<<EOF
<?xml version='1.0'?>
<!DOCTYPE sxe SYSTEM "notfound.dtd">
<xml id="elem1">
  <a>1</a>
  <a>
    <b>2</b>
    <b>
      <c>3</c>
      <c>4</c>
      <c>5</c>
    </b>
  </a>
  <a>6</a>
</xml>
EOF;

$sxe = simplexml_load_string($xml, 'SimpleXMLIterator');

foreach(new RecursiveIteratorIterator($sxe, 1) as $name => $data) {
  if (trim($data)) {
    print "$name : $data\n";
    }
  }
?>


Ce script va afficher :

a : 1
b : 2
c : 3
c : 4
c : 5
a : 6

En dérivant la classe SimpleXMLIterator ou RecursiveIteratorIterator pour créer vos propres classes, vous pourrez facilement compter le nombre de niveaux d'imbrication ou calculer des listes d'aïeux. De plus, grâce à l'interface universelle des itérateurs, vous pourriez appliquer des processus standards comme les itérateurs cycliques, ou un itérateur simple. Les itérateurs apportent une couche d'abstraction supplémentaire, qui permettra des les utiliser avec de nombreuses ressources, aussi facilement que ci-dessus. Enfin, l'auteur des itérateurs, Marcus Börger, se penche actuellement sur les problèmes de performance, et prévoit d'apporter des optimisations de l'ordre de 30% lors de l'utilisation de ces itérateurs. Un nouveau paradigme à suivre de près !

Conclusion
SimpleXML est une extension très attendue de PHP 5, et elle comble un véritable besoin. La possibilité de manipuler des fichiers XML simples, sans avoir à développer des stratégies complexes d'analyse du fichier. Avec sa syntaxe claire, SimpleXML vous permet de vous concentrer sur le plus important : les fonctionnalités de votre projet.

  Forum

Réagissez dans les forums de JDN Développeurs

Il faut être bien conscient des limitations de SimpleXML, qui ne s'adapte pas à toutes les situations. Si vous souhaitez maîtriser tous les aspects du code XML, l'extension dom de PHP 5 sera plus adaptée. En fait, SimpleXML et dom utilisent la même bibliothèque sous-jacente, libxml2, et diffèrent surtout dans leur présentation et leurs fonctionnalités. Le passage de l'un vers l'autre se fera lorsque les fonctionnalités complexes, mais plus rares, commenceront à devenir incontournables. En attendant, vive le XML simple !


<< 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