Comparatif DOM/SimpleXML/SAX

Signaler
Messages postés
91
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
16 septembre 2010
-
malalam
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
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

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
20
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.
Messages postés
91
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
16 septembre 2010

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

 
Messages postés
91
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
16 septembre 2010

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

 
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
"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
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
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.