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 :

Parse du XML sans fichier


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut Parse du XML sans fichier
    Bonjour,

    Comme mon titre l'indique, je voudrais parser du XML sans avoir besoin de fichier hors, sur internet, je ne trouve que des solutions avec des fichiers. Je fais cela car j'ai une classe "EncryptedFile" qui étend de la classe "File" et qui lit un fichier encrypté. Quand je le passe ne paramètre dans la fonction habituelle "Document document = loader.parse(file);" il m'envoie l'erreur "Invalid byte 2 of 4-byte UTF-8 sequence." car il ne comprend pas les caractères du fichier.

    Je voudrais donc, soit que mon fichier soit lisible par le "DocumentBuilder", soit lire le XML à partir d'un "String".

    La solution que j'ai trouvé pour le moment est de créer un fichier temporaire mais je ne trouve pas cela genial.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ...
     
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder loader = factory.newDocumentBuilder();
     
    File tempFile = File.createTempFile("starwall_", ".tmp");
    FileOutputStream out = new FileOutputStream(tempFile);
    out.write(this.file.read().getBytes());
     
    Document document = loader.parse(tempFile);
     
    ...
    Avez vous une solution?

    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    la méthode parse possède plusieurs définitions. Tu peux passer, par exemple, par une instance d'InputSource. InputSource pouvant être construite à partir d'une classe héritant de la classe Reader. Or tu as le bien nommé StringReader qui devrait t'intéresser.

    Ou sinon tu peux aussi passer une InputStream en paramètre, InputStream corresondant à une ByteArrayInputStream créer à partir des Bytes de la chaine en question (méthode getBytes(String encoding) de la classe String)

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    Ça marche !

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    InputSource is = new InputSource(new StringReader(monXMLEnString));
     
    // Créer un nouveau document XML
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder loader = factory.newDocumentBuilder();
    Document document = loader.parse(is);

    Merci pour ton aide.

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

Discussions similaires

  1. [JDOM] comment écrire dans un fichier xml sans écraser son contenu
    Par solawe dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 25/03/2008, 14h11
  2. ajax lecture dans fichier xml sans serveur
    Par TERRIBLE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/03/2008, 12h19
  3. [Parsing XML] traiter Fichier XML volumineux
    Par mcrbe dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 06/03/2008, 10h31
  4. Lecture fichier XML sans ActiveX
    Par bbo1991 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/08/2007, 15h56
  5. Fichier <table>.hbm.xml : sans aucun champs
    Par zakir dans le forum Hibernate
    Réponses: 1
    Dernier message: 31/05/2007, 17h57

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