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 :

Parser SAX : connaitre l'état d'avancement [SAX]


Sujet :

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

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Parser SAX : connaitre l'état d'avancement
    Bonjour,
    Voila mon problème : j'utilise un parser SAX (celuis de Xerces) pour parser des fichiers XML. Comme ces fichiers peuvent être (très) gros genre plus de 250Mo, cela peut être long à traiter. Actuellement, l'utilisateur ne sait pas ce qu'il se passe et si cette attente est normale.

    J'aimerais donc savoir si au cours du traitement, je peux savoir où le parser en est. Est-il capable de me donner le nombre d'octets déjà parcourus ou quelque chose comme ca ?

    Merci pour les infos.





    [Modéré par Didier]
    Ajout de tag dans le titre
    Lire les règles du forum : Règles du forum Java

  2. #2
    Membre habitué Avatar de XristofGreek
    Inscrit en
    Août 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 164
    Points : 174
    Points
    174
    Par défaut
    malheureusement je crains qu'avec la technique SAX tu n'aies beaucoup de solutions. Je ne connais pas de méthode qui te dise où tu en es dans le fichier. En revanche tu peux peut-être de débrouiller en implémentant un compteur dans la méthode DefaultHandler.endElement().
    Sinon tu peux utiliser DOM ça doit être plus facile, mais avec de tels fichiers tu risques de tout exploser !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    A priori, j'ai (enfin, pas tout seul ;-) trouvé une idée qui devrait fonctionner : en appelant le parser SAX sur un FileInputStream, on peut ensuite, au cours du "parsing" (parsage ? parsement ?) connaître l'avancement du FileInputStream.

    Voici en gros ce que ça donne :

    XMLReader saxReader;
    saxReader = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
    // Le ContentHandler est la classe courante qui a deja ete implementee
    saxReader.setContentHandler(AnalyseAdexpSAXContentHandler.this);
    // Appel du parser SAX (contenu dans la classe courante)
    inputStreamFichierAAnalyser = new FileInputStream(lsfichierAAnalyser);
    saxReader.parse(new InputSource(inputStreamFichierAAnalyser));


    Et dans le parser, on peut appeler :

    inputStreamFichierAAnalyser.getChannel().position();

    Et voilà. Peut-être que ça servira à quelqu'un un jour...

  4. #4
    Membre habitué Avatar de XristofGreek
    Inscrit en
    Août 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 164
    Points : 174
    Points
    174
    Par défaut
    Excellente idée. Effectivement je pense que ça servira.

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

Discussions similaires

  1. machine à états avec un parser SAX Xerces
    Par grutt dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 20/05/2009, 14h32
  2. [SAX] Parser SAX
    Par Imladir dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 13/01/2006, 18h32
  3. Réponses: 5
    Dernier message: 14/12/2005, 10h28
  4. [SAX] Parser SAX
    Par tchouki dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 13/11/2005, 15h18
  5. état d'avancement d'un CopyFile()
    Par Xam335 dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/09/2005, 12h12

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