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 :

analyser directement un flux [SAX]


Sujet :

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

  1. #1
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut analyser directement un flux
    Bonjour,

    Je voudrais faire communiquer deux applis reseaux en me basant sur un flux XML ...

    Je sais qu'il existe deja pas mal de chose qui permet d'analyser le XML comme par exemple SAX, DOM, JDOM, etc ...

    Je voulais savoir s'il etait possible d'analyser du xml mais dans autre chose que dans un fichier. Ce que je voudrais, c'est faire de l'analyse "a la volee"...

    Pour l'instant je penche plus pour SAX mais je ne sais pas si c'est possible de faire ce que je voudrais... mais avant de me plonger plus dedans, je voudrais savoir si c'est possible ou pas.

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2004
    Messages : 85
    Par défaut
    Hello,

    voilà une fonction statique qui permet de parser un flux xml contenu dans un "InputStream" en document DOM W3C... Peut-être que ça peut t'aider...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public static Document read(InputStream inputStream) {
    	try {
    	    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
    	            .newInstance();
    	    DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
    	    return docBuilder.parse(inputStream);
    	} catch (FactoryConfigurationError e) {
    	    e.printStackTrace()
    	} catch (ParserConfigurationException e) {
    	    e.printStackTrace()
    	} catch (SAXException e) {
    	    e.printStackTrace()
    	} catch (IOException e) {
    	    e.printStackTrace()
    	}
    }
    @+

  3. #3
    Membre Expert
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Par défaut
    l'API Sax dispose d'une methode qui permet de passer un flux en parametre plutot qu'un fichier, si c'est bien ce que tu cherches :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
        /** Fonction principale a lancer pour effectuer le parsing
         * @param InputStream fileExp XML a parser
         * @throws IOException*/
        public void go(InputStream fileExp) throws IOException {
     
          ImportationHandler handler = new ImportationHandler(connexion);
          SAXParserFactory factory = SAXParserFactory.newInstance();
     
          try {
            SAXParser saxParser = factory.newSAXParser();
            saxParser.parse(fileExp, handler);
            // parser et lancer les traitements du handler
          } catch (Throwable t) {
            t.printStackTrace();
            System.exit(2);
          }
        }

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2004
    Messages : 85
    Par défaut
    Citation Envoyé par Viena
    l'API Sax dispose d'une methode qui permet de passer un flux en parametre plutot qu'un fichier
    En fait, je ne vois pas la différence au niveau flux d'entrée entre nos deux méthodes... Pour moi, c'est le même objet, c'est-à-dire un InputStream, on est donc, ni l'un ni l'autre, limité qu'au fichiers...
    @+

  5. #5
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Je vous remerci pour vos infos... je vois que ca devrait donc etre possible.

    Bon, maintenant que je sais que l'on peut utiliser SAX et DOM pour analyser des flux.... Pour ce que je souhaite faire , vous me conseillez quoi ? SAX ou DOM ?

    Je vous explique quand un meme un peu ce que je veux faire ...

    En fait, je veux envoyer mes requetes entre mes clients sous forme de message XML... c'est pour ca que je souhaiterais analyser le XML a partir d'un flux. Ensuite, je souhaiterais avoir une aproche plutot evenementiel, ce qui peut sembler plutot normale pour ce genre d'application. Je pencherais plus pour SAX car d'apres ce que j'ai compris, c'est comme ca qu'il fonctionne, alors que DOM va construire un objet correspondant.

    Est ce que j'ai bien compris ou est ce que je suis completement ca cote de la plaque ?[/quote]

  6. #6
    Membre éprouvé Avatar de jerome.petit
    Inscrit en
    Novembre 2002
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 78
    Par défaut
    SAX est moins gourmand car il fait l'analyse à la volée, alors que DOM construit un arbre en mémoire qui contient tout ton XML.

    Pour ton cas je pense que SAX est plus approprié.

    Suggestion, toi qui veux faire causer des applis en XML, peut être pourrais tu jeter un coup d'oeil du côté de SOAP ?

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

Discussions similaires

  1. Analyse d'un flux XML
    Par kqman dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 02/03/2010, 16h49
  2. Réponses: 3
    Dernier message: 08/11/2009, 18h20
  3. afficher la flux d'une webcam en direct sur une page web
    Par michel_frederic dans le forum Multimédia
    Réponses: 8
    Dernier message: 15/06/2006, 14h34
  4. probleme lors de l'analyse d'un flux xml sous asp
    Par jlassira dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 05/07/2005, 14h01
  5. [SAX] analyse d'un flux reseau a la volee
    Par benratti dans le forum Format d'échange (XML, JSON...)
    Réponses: 19
    Dernier message: 17/02/2005, 11h58

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