Comparatif DOM/SimpleXML/SAX

3xodius55 Messages postés 91 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 16 septembre 2010 - 20 août 2006 à 00:19
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 21 août 2006 à 08:20
Bonjour à tous,

Je dois expliquer dans un rapport de projet pourquoi choisir DOM à SimpleXML ou à SAX.
Ne sachant pas si  DOM  s'applique à  plusieurs  type de document, je précise que la comparaison  attendue porte sur le format XML.
En effet, dans mon projet pour respecter au mieux les recommandations du W3C j'ai choisi DOM ; de plus DOM offrait toutes les fonctionnalités dont j'avais besoin ; évidemment si je mets ça dans mon rapport, ça risque de laisser les examinateurs perplexes...

J'attends toute réponse constructive de votre part.

Merci à vous

 

5 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 août 2006 à 11:01
Hello,

ben, ces extensions n'ont surtout pas les mêmes objectifs.
De plus, elles ne sont pas incompatibles : rien ne t'oblige à n'utiliser QUE DOM. Tu peux mixer.
Enfin, tout dépend au final de l'utilisation que tu as de xml!
SimpleXML ne fait que LIRE du xml. Très simplement.
DOM permet de lire, de créer, de manipuler des flux XML.
SAX (extension XML, quoi...) permet aussi de lire et de créer il me semble (je l'ai peu iutiliser, j'ai une préférence nette pour DOM, pour diverses raisons. Notamment, parce que j'aime bien DOM, lol).
L'extension la pluis puissante, mais aussi la plus complexe reste DOM. Si tu ne dois que lire des fichiers, contente-toi de simplexml, plus rapide et plus digeste. Et, encore une fois, tu peux utiliser toutes ces extensions dans ton projet, selon ce que tu as à faire, ça ne me choque pas, moi, ça.
0
3xodius55 Messages postés 91 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 16 septembre 2010
20 août 2006 à 14:13
Salut,

Merci malalam pour ta réponse ; par contre est-ce qu'il est possible avec SimpleXML de se positionner sur un élément particulier ( getElementsByTagName avec DOM) ?

 
0
3xodius55 Messages postés 91 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 16 septembre 2010
20 août 2006 à 14:18
re,


Dom et sax (Simple Api for XML)

Dom et sax sont deux moyens de parser un document xml et
en utiliser le contenu. Dom est le plus simple, le plus intuitif.
Sax est plus rapide et consomme moins de mémoire.

- Dom charge le document en mémoire sous forme d'arborescence
et permet au programmeur d'appliquer des fonctions sur les éléments
de l'arbre.

- Sax est orienté-évènements. Il associe
des méthodes aux balises, elles sont activées
quand les balises sont atteinte lors de la lecture. Les éléments
sont lus en séquence, une seule fois. Il faut fournir
son propre modèle de document, alors qu'il en est fourni
un avec dom .

Si vous voulez traiter un document avec des scripts, dom est
plus pratique.

Source : http://www.xul.fr/xml-dom.html

 
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
20 août 2006 à 20:38
"SimpleXML ne fait que LIRE du xml"
Beuh, t'es en retard toi :)

Depuis PHP 5.1.3, tu peux aussi faire de l'écriture via SimpleXML :)

Ex de la doc :
<?php
$xml = new SimpleXMLElement($xmlstr);

$character = $xml->movie[0]->characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $xml->movie[0]->addChild('rating', 'PG');
$rating->addAttribute('type', 'mpaa');

echo $xml->asXML();
?>

Donc c'est au choix. DOM est plus puissant, SimpleXML est plus facile (et encore, c'est presque pareil je trouve) :)

Voila voila
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
21 août 2006 à 08:20
ah ben avec ma version de php (5.1.4) ça ne marchait pas ça, alors me suis dit que c'était pas encore implémenté.

Dans ce cas, ouais, en effet...manque quand même pas mal de trucs par rapport à DOM; mais avec addChild et addAttribute, franchement, ça répond à la plupart des besoins à mon avis.
0
Rejoignez-nous