IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

Meilleure facçon de lire et d'écrire un fichier XML [DOM]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Meilleure facçon de lire et d'écrire un fichier XML
    Bonjour,

    je suis novice en XML, je dois lire un fichier XML et générer des objets java dans une liste (ou plusieurs) (TableModel) et ensuite regénérer le fichier XML à partir de la liste (ou des listes) modifiée.

    Exemple simplifié:
    Persons.xml =
    <PERSONS>
    <PERSON>
    <IDENTIFIANT> Dupond </IDENTIFIANT>
    <COORDONNEES>
    <PORTABLE> 06 06 06 06 06 </PORTABLE>
    <ADR>
    <RUE>1\bis rue de Paris </RUE>
    </ADR>
    <ADR>
    <RUE> 2 rue Charles Henri & fils </RUE>
    </ADR>
    </COORDONNEES>
    </PERSON>
    </PERSONS>

    A partir de ce fichier je dois générer une liste des personnes (sans coordonnées), une liste des coordonnées (sans adresses), une liste des adresses. et transférer sur le fichier XML ces listes mises à jour.

    D'après mon précédent message sur le forum il semble que la meilleure façon est d'utilsier DOM pour l'écriture et la notion d'attributs pour éviter des caractères ("\" ou autres) parasites mal interprétés par un parser XML dans le fichier. (cas avec SAX me servant de générateur de fichier XML d'après un tablemodel et méthodes startelement et endelement appelées par programmation).


    Mes questions sont les suivantes :
    Peut on utiliser SAX et DOM conjointement ? Et comment ?
    Est ce exact que les atrributs limitent les pb de caractères parasites ?
    SAX mal approprié pour l'écriture - à éviter ? Et pourquoi ?
    Ou autres précisions ou exemple synthétique de comment procéder pour l'exemple ci-dessus.

    Merci d'avance pour tout renseignement.

    [ Modéré par Greg01 ]
    -> Modification du tag dans le titre.
    -> Merci de respecter les règles des forums Java.

  2. #2
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    y aussi JDom qui est bien pratique, il permet aussi bien l'ecriture et la lecture et cela tres simplement, perso g lu juste une doc et c bon g tout compris et maintenant je traite tout mes fichiers XML avec ca, avant g t avec dom ou meme SAX et franchement y a pas photo...

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Merci de la réponse, je continue mo étude tout autre rensiegnement est la bienvenu.

  4. #4
    Membre actif
    Étudiant
    Inscrit en
    Février 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 193
    Points : 246
    Points
    246
    Par défaut
    faut comprendre que SAX et DOM sont deux méthodes totalement différentes pour le traitement du XML !!!

    DOM gère le document XML en entier, il le charge totalement en mémoire et là les traitements sur l'arbre sont très rapide (car l'arbre est en mémoire). il est adapté si il y a des requetes à faire sur l'arbre XML ou si il y a des transformations à réaliser sur l'arbre.

    SAX lui est une methode gérant l'XML comme un flux de donné, il génère des evenements (debut de balise, fin de balise etc ...) que tu vas récupérer et traiter au fur et à mesure que tu lis le document. Donc il est plus rapide en traitement, permet de traiter rapidement des flux importants de données XML, par contre il n'a qu'une vue limitée de l'arbre et il n'est pas possible de faire des requetes sur l'arbre XML (à moins de relire à chaque fois le fichier, ce qui est pas vraiment adapté).

    donc au final, l'utilisation de SAX ou DOM dépend totalement de ce que tu as envie de faire avec tes données XML

  5. #5
    En attente de confirmation mail
    Inscrit en
    Avril 2002
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    j'utilise JDOM et c'est assez facile.
    Maintenant, tu peux essayer castor qui te permet d'utiliser ton XML comme un DB mais plus complexe à utiliser et à mettre en place.

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Merci pour toutes vos réponses, je m'oriente vers les API DOM et vous tiens au courant.

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    J'ai essayé JDOM et en effet cette API est beaucoup plus pratique pour manipuler un fichier XML (lecture, sélection, suppression d'éléments, ajouts, etc...)

    Le problème est la mémoire occupée, mais sur des fichiers de taille raisonnable cela doit passer.

    Merci pour vos réponses.

    A +

  8. #8
    Membre éclairé
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Points : 844
    Points
    844
    Par défaut
    Perso j'aime bien JAXB

    C'est un outils de SUN permettant de generer un parseur (lecture / ecriture) spécifique à un fichier XML spécifique.

    En effet il utilise un schema (.xsd) pour generer les classes du parseur !!
    Le parseur est basé sur SAX mais stocke le fichiers dans les classes cibles du parseur.

    Il est assez facile a prendre en main.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    lu me pose une question sur l use de DOM,

    Le problème est la mémoire occupée, mais sur des fichiers de taille raisonnable cela doit passer.
    Comment on peu juger qu un fichier est taille raisonnable (nombre de ligne, nombre de balise , balsie imbrique ....
    Si vous pourriez me donner un ordre de grandeur ca m aiderait
    merci d avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/06/2011, 10h28
  2. Lire et écrire un fichier XML
    Par Palca dans le forum Smalltalk
    Réponses: 0
    Dernier message: 28/04/2008, 11h40
  3. écrire un fichier xml et ajout
    Par robert_trudel dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 09/06/2006, 14h23
  4. Lire le contenu d'un fichier xml
    Par Invité dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 10/01/2006, 19h13
  5. Lire un attribut dans un fichier XML en C++
    Par ti.k-nar dans le forum XML
    Réponses: 2
    Dernier message: 14/10/2002, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo