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 une string [DOM]


Sujet :

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

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Parser une string
    Je suis désolé si je pose (sans doute) une question maintes fois posée. J'ai déjà largement feuilleté le forum mais les réponses apportées ne semblent pas fonctionner.

    Je suis complètement novice en JAVA et je dois parser un fichier XML sous forme d'une string ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class TestDOM implements B_global
    {
    	public static boolean TestDOM ( String fichierABS ) throws Exception {
     
    		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    		DocumentBuilder parser =  factory.newDocumentBuilder();
     
    		try {
    			Document document = parser.parse(fichierABS); /*** PLANTAGE ***/		
    			Element msgPFI = document.getDocumentElement();
    Si fichierABS est un chemin absolu vers un fichier .xml cela fonctionne.
    Si il s'agit du contenu du fichier, cela ne fonctionne pas.

    Y a-t-il un moyen de traiter cette string sans reformer un fichier .xml temporaire ?

    Merci

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 76
    Points : 88
    Points
    88
    Par défaut oui c possible
    au lieu d'appeler parse avec une string qui sera toujours pour lui un nom de fichier appel parse avec en parametre un Inputstream qui sera un flux représentant ta String XML.

    waddle

    --
    EPITA Student
    Promo 2006

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Euh ... est-ce que je peux caster une string en InputStream ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TestDOM.java:43: inconvertible types
    found   : java.lang.String
    required: java.io.InputStream
                            fichierABS = (InputStream) fichierABS;
                                                       ^
    1 error
    Parceque voilà, ce que j'obtiens ...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 30
    Points : 32
    Points
    32
    Par défaut
    non le caster tu as pas trop le droit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    InputStream is = new java.io.ByteArrayInputStream(str.getBytes());

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 76
    Points : 88
    Points
    88
    Par défaut oulala
    ah non non non !!!
    tu peux pas faire ca, car String n'est pas un InputStream !!!!

    il doit exister plusieurs methodes, à vu de nez j'en trouve une pas très belle (mais bon j'ai pas trop cherché non plus....mon boss va pas etre content sinon.... ;-) )

    utilise des PipedInputStream (et output) ecrit ta chaine dans le output apres l'avoir connecter a un input. Comm PipedInputStream est sous-classe de InputStream ca devrait passer.

    Bon c vrai que ca pas leur usage normal, mais bon, les deadlock que tu pourrais avoir n'existeront pas si tu n ecris qu'une fois et que tu lis une fois, enfin je crois..... :-)

    il doit surment exister d'autre methodes plus propres.

    waddle

    le tps que je redige, un nouveau post est apparu, et sa solution est bien plus belle

    --
    EPITA Student
    Promo 2006

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    OK j'ai fini par résoudre mon pb en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Document document = parser.parse(new InputSource(new StringReader(fichierABS)));
    Je ne sais pas si c'est très correct mais ça fonctionne bien en tout cas.
    Merci à tous pour vous conseils (même si je n'ai pas tout compris) qui m'ont donné envie de vraiment m'intéresser à JAVA.

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

Discussions similaires

  1. Probleme pour parser une String en Date
    Par DrTank dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2007, 19h19
  2. parser une string xml avec jsp
    Par issamos4 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 26/03/2007, 09h50
  3. [Tableaux] Parser une string en array
    Par supersmoos dans le forum Langage
    Réponses: 6
    Dernier message: 08/02/2007, 16h01
  4. [XML] [string] parser une string XML
    Par fxp17 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 29/03/2006, 10h27
  5. [DOM] parser une String pour en faire un document XML
    Par Fladnag dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 29/03/2004, 11h04

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