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 :

Problème de création de DOM a partir d'un fichier


Sujet :

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

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 16
    Points
    16
    Par défaut Problème de création de DOM a partir d'un fichier
    Bonjour a tous,

    je possède un fichier contenant plusieurs document XML
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <toto>
       <tata>
       </tata>
    </toto>
    <toto>
       <tata>
       </tata>
    </toto>
    <toto>
       <tata>
       </tata>
    </toto>
    ....
    de ce fichier texte j'extrais la chaine String XML_data contenant un seul élément:
    <toto>
    <tata>
    </tata>
    </toto>

    Avec la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FileInputStream nomLogique=new FileInputStream (nomFichier);
    InputStreamReader ligne = new InputStreamReader (nomLogique);
    BufferedReader bufferLigne = new BufferedReader (ligne);
     
    plus toutes une série de bufferLigne.readLine() concaténé dans une String XML_data
    ensuite je veux creer le DOM avec cette chaine en utilisant la méthode parse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
    DocumentBuilder constructeur = fabrique.newDocumentBuilder();
    document = constructeur.parse(new InputSource(new InputStreamReader(XML_data)));

    Mais j'ai une erreur d'exécution du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Fatal Error] :1:6: Premature end of file.
    le "6" correspond en fait a la fin de la première ligne récupérer par le premier readLine()

    Avez vous des idées pour savoir d'ou viens mon probleme ?

    merci a tous pour votre aide

    PS : je cherche de mon coté a savoir si l'erreur ne viens pas d'un manque de caractère "\n" ou "\r" supprimé par le readLine ?
    Enfin je sais pas trop

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Quel est le type de XML_data?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    XML_data ets du type String

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Le constructeur de InputStreamReader ne prend pas de string en entrée seulement des inputstream. Il faudrait donc créer un ByteArrayInputStream intermédiaire.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Peux tu me donner la syntaxe a utiliser ?

    Merci

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new InputStreamReader(XML_data)
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new InputStreamReader(new ByteArrayInputStream(XML_data.getBytes()))
    Il y aura peut être un pb d'encodage à regler.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    je me suis trompé dans mon premier exemple.


    en fait la commande que j'execute est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document = constructeur.parse(new InputSource(new StringReader(XML_data)));
    est ce que tu sais pk ca ne marche pas ?

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Il faudrait être sur que le xml que contient XML_data est "bien formé".
    Un test pourrait être de l'enregistrer dans un fichier, notepad++ peut faire ce genre de vérif.
    Sinon, peut être l'entête xml lui manque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document = constructeur.parse(new InputSource(new StringReader("<?xml version=\"1.0\"?>"+XML_data)));<?xml version="1.0"?>

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    bonjour,

    qu'es que tu entend par "bien formé" ?

    Concernant les entete XML, dans mon exemple sur le forum je l'ai pas mis, mais dans la réalité y a une entete pour chaque document xml.


    Est ce que tu connais une méthode pour voir apparaitre les caractères "cachés" dans une String ??

    Merci

Discussions similaires

  1. Problème de création d'une base à partir d'un template
    Par ljoly dans le forum Administration
    Réponses: 4
    Dernier message: 15/02/2011, 09h45
  2. [MySQL] Création d'une table à partir d'un fichier XML
    Par car0line dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/05/2009, 11h19
  3. [VxiR2] [BOXI R2 SP2] Création d'un univers à partir d'un fichier excel
    Par jsaviola dans le forum Designer
    Réponses: 2
    Dernier message: 06/02/2009, 09h49
  4. création d'une table à partir d'un fichier texte
    Par romain.barraud dans le forum Installation
    Réponses: 5
    Dernier message: 05/04/2007, 18h40
  5. Réponses: 3
    Dernier message: 08/08/2006, 02h50

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