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

APIs XML Discussion :

[DOM/SAX]Choix...


Sujet :

APIs XML

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 13
    Points : 11
    Points
    11
    Par défaut [Resolu][DOM/SAX]Choix...
    Salut!

    Je programme en JAVA et je dois parser un gros fichier XML (1Mo et des brouettes) et je voudrais savoir si, d'apres vous, il vaut mieux parser mon fichier avec SAX (sachant de plus que je ne fais que de l'affichage avec ce fichier) et stocker les informations dans les structures de mon programme JAVA, ou est-ce qu'il vaut mieux creer un arbre DOM en memoire et recuperer les informations voulues a chaque fois dans cet arbre?
    (je ne sais pas exactement la facilite d'acces permise par DOM...)

    Si vous pouviez m'eclairer de votre savoir ou de votre experience...
    Je vous remercie d'avance,
    miss8

  2. #2
    Membre confirmé
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Points : 499
    Points
    499
    Par défaut
    Avec Dom tu peux parcourir ton arbre comme tu veux et facilement(design-pattern Composite), tandis avec Sax, le parcours est séquentiel (donc aucune information sur la profondeur d'une balise ou ses liens de parenté). En contrepartie l'utilisation mémoire d'un parser Dom dépend linéairement de la taille de ton document, tandis qu'avec Sax c'est constant.

    Donc :
    Tout dépend si la recherche d'une informations se fait aléatoirement ou séquentiellement en une seule passe. En effet l'accés à une information en Dom se fait en O(log(n)) tandis qu'en Sax en O(n). Dom peut être plus intéressant si les informations sont accédées très souvent dans un ordre aléatoire.
    De plus Sax peut être intéressant si on ne récupère qu'une très petite partie d'un document. Si tu as besoin des informations contextuelles d'une balise, le mieux est d'utiliser une pile lors du parcours...
    "Les gens normaux croient que si ca marche, c'est qu'il n'y a rien à reparer. Les ingénieurs croient que si ca marche, c'est que ca ne fait pas encore assez de choses."
    --Scott Adams

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    en fait, j'ai deja des structures qui peuvent recuperer les info que je vais lire dans mon fichier XML grave a mon parseur donc, de toutes les manieres, je ne parcourerai mon fichier qu'une unique fois.
    Le probleme est que je voudrais savoir :
    1°) est-ce qu'un si gros fichier (plus d'un Mo) peut tenir dans l'arbre DOM,
    2°) si le fait d'avoir a creer un arbre DOM est plus rapide que de parcourir avec SAX mais en ayant a rechercher a chaque fois ou stocker l'info (meme si mes structures sont retrouvables de maniere optimisee grace a des tables de hash).

  4. #4
    Membre confirmé
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Points : 499
    Points
    499
    Par défaut
    non un arbre Dom ne plante pas avec 1 Mo

    Mais si je comprends bien, tu veux créer une image spécifique de ton document en mémoire. Autant le faire avec Sax directement plutot que de créer un arbre Dom puis de parcourir l'arbre puis de recréer des objets. La solution avec Sax est plus optimale en mémoire et en vitesse.
    "Les gens normaux croient que si ca marche, c'est qu'il n'y a rien à reparer. Les ingénieurs croient que si ca marche, c'est que ca ne fait pas encore assez de choses."
    --Scott Adams

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Je te remercie pour tes conseils

    Pour ce qui est du but du projet, il faut en fait que je puisse acceder a des info aleatoirement dans mon ficher donc il semble que DOM est le meilleur choix parce que je n'aurai pas a chercher a chaque fois où stocker mes info en memoire...

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

Discussions similaires

  1. module introuvable xml.dom/sax les autre oui
    Par zeonnix95 dans le forum Général Python
    Réponses: 5
    Dernier message: 12/08/2010, 10h38
  2. [DOM, SAX, STAX] Generer une page HTML
    Par Merchinho dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 15/03/2009, 21h25
  3. Migration : passage de DOM à SAX
    Par neuropathie dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 11/12/2007, 12h09
  4. [dom][sax]problème à le lecture d'un fichier
    Par floanne dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 02/04/2007, 15h06
  5. [parsers] DOM/SAX:oui mais moi je fais du XSL
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 24/05/2006, 19h10

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