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 :

[Debutant] xml et java


Sujet :

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

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Par défaut [Debutant] xml et java
    Bonjour à tous !

    Bon, je préviens direct, le developpement java n'est pas vraiment ma partie (mon boulot étant davantage axé sur le dev actionscript/php) mais pour les besoins de la cause j'essaie de m'y mettre... (surtout un projet urgent...)

    Bref... mon but est de réaliser (ne vous inquiétez pas ma question ne porte pas là dessus) un serveur de Socket multiThread en java, destiné à une interaction avec flash...
    Je compte réaliser les envois de données entre l'API actionScript et le serveur au moyen de flux au format XML...

    Mon problème est le suivant :
    J'ai bien réussi (gràce à des tutos) à lire un fichier xml (cf code simplifié ci joint) mais comment adapter celà pour qu'il me "parse" non pas un fichier mais un flux xml (au format String donc...)

    Merci d'avance à tous et à toutes !
    -> si vous avez besoin de précisions supplémentaires n'hésitez pas !

    AfficherElement.java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import org.xml.sax.helpers.DefaultHandler;
    import org.xml.sax.Attributes;
     
    public class AfficherElement extends DefaultHandler{
    	//appelée à chaque balise ouvrante rencontrée
    	//Attributes : les attributs de la balise ouvrante
    	//autres paramètres : nom de l'élément
    	public void startElement(String namespaceURI, String localName, String qName, Attributes atts){
    		System.out.println(qName);
    	}
    }
    Analyse.java
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    import javax.xml.parsers.SAXParserFactory;
    import javax.xml.parsers.SAXParser;
    import org.xml.sax.SAXException;
    import java.io.IOException;
    import java.io.File;
     
    public class Analyse{
    	//**CONSTRUCTEUR
    	public static void main(String[] args){
    		//si le nom de fichier n'a pas été passé en paramètre
    		if (args.length!=1){
    			System.err.println("usage: AnalyseDeBase xmlfile");
    			System.exit(1);
    		}
     
    		try{
    			//création de l'usine
    			SAXParserFactory factory=SAXParserFactory.newInstance();
    			factory.setNamespaceAware(true);
    			factory.setValidating(false);
    			//création de l'analyseur
    			SAXParser parser=factory.newSAXParser();
    			//ContentHandler - instanciation de la classe PrintElement
    			PrintElement handler=new PrintElement();
    			//analyse du document
    			try{
    				parser.parse(new File(args[0]),handler);
    			}catch(SAXException se){
    				se.printStackTrace();
    			}
    		}catch(Exception e){
    			System.err.println(e);
    		}
    	}
    }

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Par défaut
    personne n'a une petite idée ?

    En fait c'est assez étrange... Je vois dans la doc que javax.xml.parsers.SAXParser a +eurs méthodes parse, dont celle qui prend en paramètre un File, mais aussi une autre qui prend en paramètre un String...

    Or même si je fais parser.parse(new String("<?xml version='1.0'?><test><hop>texte</hop></test>"),handler);

    ca me compile sans pb, MAIS quand je teste mon prog ca me renvoie :
    java.io.FileNotFoundException: /Users/melvar/Desktop/exemple/< (No such file or directory)

    alors que je ne passe PAS de fichier en paramètre mais un String... on dirait qu'il n'use pas la bonne méthode...

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut lire la documentation : SAXParser.parse(String ,DefaultHandler) !!!

    Le paramètre String permet d'identifier la ressource à charger. Dans ton cas comme tu ne spécifie pas de protocole il essayera de l'ouvrir comme un fichier qu'il ne trouve pas (logique)...

    Si tu veux lire le contenu d'une String en tant que données à parser, il te faut passer par un ByteArrayInputStream :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parser.parse(new ByteArrayInputStream("<?xml version='1.0'?><test><hop>texte</hop></test>".getBytes()),handler);
    a++

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Par défaut
    Yeahhh

    merci beaucoup adiGuba !!

Discussions similaires

  1. [DOM] Comment créer des flux XML en java ?
    Par nean_j dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 27/04/2004, 12h00
  2. [DOM] est ce qu'on peut créer un fichier xml en java ?
    Par miloud dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 21/01/2004, 10h40
  3. Documentation sur la manière de travailler avec le XML en java
    Par DelPiero62 dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 26/03/2003, 09h16
  4. [DOM] suppression d'un noeud fils xml en JAVA
    Par alexandre54 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 20/03/2003, 09h44
  5. XML et Java
    Par pantin dans le forum Valider
    Réponses: 3
    Dernier message: 17/03/2003, 14h14

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