|
|
|
|
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) |
|
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 !
|
|
|
|
|
|
Quand achetez-vous le plus en ligne ? |
|
|
|
|
|
|
|
|