Choix d'un parser XML

cs_RvaN Messages postés 4 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 1 février 2007 - 13 oct. 2006 à 11:02
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 13 oct. 2006 à 16:38
Bonjour à tous,

Je suis en train de développer une application en JAVA utilisant le modèle 3-tiers. Mon but est de mettre à jour une base de données à partir d'un fichier xml. Lors de la lecture du fichier XML, le DAO crée un object de valeur pour mon application.
Je suis aujourd'hui en train d'étudier la partie XML et je suis à la recherche d'un parser XML.
Après quelques recherches sur le net, j'ai trouvé 2 parsers :
     - SAX
     - DOM

Je ne sais lequel choisir. DOM est lent mais une fois lue, crée une arborescence très pratique à ce que j'ai pu comprendre alors que SAX est plus rapide mais est de type évènementiel.

Pourriez m'aider à prendre la bonne décision.

Je vous remercie de votre aide.

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
13 oct. 2006 à 11:29
Perso, j'utilise DOM, qui est vraiment très simple à utiliser, et apporte une approche hiérarchie du fichier xml : les objets sont emboîté les uns dans les autres.
Niveau rapidité, je ne peux pas te dire, je ne travaille que sur de tout petit fichier xml d'au plus 500 Ko. Ce n'est pas très représentatif bien évidement, mais la rapidité est largement suffisante sur d'aussi petits fichiers. Après, sur des gros, je ne peux pas te dire.
Il parse d'un coup tout le fichier, et tu peux récupèrer les éléments qui t'interesse. Je pense qu'il est parfaitement adapté à l'utilisation que tu veux en faire. Par contre, c'est vrai qu'il a la réputation d'être moins rapide que SAX... à tester !

SAX lui par contre, après les quelques tests que j'en ai fait, est plus compliqué à utilisé, et fait une lecture séquentielle du fichier en déclenchant des événements dès qu'une balise est lue. Pratique pour lire un fichier du début à la fin, mais je ne pense pas qu'il soit adapté à ce que tu cherche à faire (base de données basée sur XML).
0
cs_RvaN Messages postés 4 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 1 février 2007
13 oct. 2006 à 11:47
Merci DARKSIDIOUS de m'avoir répondu si vite.

J'ai des petits fichiers de l'odre de 100 Ko. Je dois lire mon fichier du début jusqu'à la fin car je dois traiter tout mon fichier. Toutes les informations contenues dans mon fichier seront utilisées. De plus, je dois crée moi même des objects de valeurs qui contiendront les informations de mon fichiers XML.
Je pense donc que le parser SAX est le plus adapté. Vous en pensez quoi?
0
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
13 oct. 2006 à 12:01
Salut.
Sur des fichiers aussi petits Dom sera largement suffisant. Tu parses, récupères tes objets et les traites.

Pour tes objets de valeurs, une fois qu'ils sont créés, que ce soit un parser ou un autre cela à peu d'importance. Maintenant c'est aussi à toi de voir avec lequel tu te sentiras plus à l'aise dans l'implementation.
0
cs_RvaN Messages postés 4 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 1 février 2007
13 oct. 2006 à 12:32
Salut,

Merci pour ta réponse.

J'ai vu aussi qu'il y avait le parser JDOM qui est pratique que DOM et SAX.
Qu'en pensez vous?
0

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

Posez votre question
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
13 oct. 2006 à 16:38
Salut :

SAX est plus efficace, vu que DOM créer toute l'arborescence du fichier XML dans la mémoire et pour un fichier XML de bonne taille ça risque de nuir au performance de l'application.
0
Rejoignez-nous