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 :

comment faire : Xml to String [JDOM]


Sujet :

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

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 24
    Points
    24
    Par défaut comment faire : Xml to String
    Bonjour tout le monde
    J'ai un problème avec xml, j'utilise JDom en fait j'ai mon fichier xml :

    fichier.xml
    Code xml : 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
    <?xml version="1.0" encoding="UTF-8"?>
    <personnes>
       <etudiant classe="P2">
          <nom>CynO</nom>
          <prenoms>
             <prenom>Nicolas</prenom>
             <prenom>Laurent</prenom>
          </prenoms>
       </etudiant>
       <etudiant classe="P1">
          <nom>Superwoman</nom>
       </etudiant>
       <etudiant classe="P1">
          <nom>Don Corleone</nom>
       </etudiant>
    </personnes>

    et ce que je veux c'est de pouvoir récupérer le contenu de mon fichier en string :

    Pouvoir faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String s;
     
    s = parse("fichier.xml");
    donc ce que je veux faire c'est
    XML -> String

    Merci d'avance.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 24
    Points
    24
    Par défaut
    Peut être je n'étais pas assez claire, ce que j'essaie de faire c'est de lire mon fichier xml dans une chaine de caractères c'est à dire je parse mon fichier

    comme suit :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String s = jeparse("monFichier.xml");
    et que lorsque je fais :

    il m'affiche :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <personnes>
       <etudiant classe="P2">
          <nom>CynO</nom>
          <prenoms>
             <prenom>Nicolas</prenom>
             <prenom>Laurent</prenom>
          </prenoms>
       </etudiant>
       <etudiant classe="P1">
          <nom>Superwoman</nom>
       </etudiant>
       <etudiant classe="P1">
          <nom>Don Corleone</nom>
       </etudiant>
    </personnes>
    à savoir j'ai trouver : OutPutStream qui me l'affiche sur la sortie mais ce que vraiment je cherche c'est de l'enregistrer dans une chaine de caractère

    Si quelqu'un a déjà essayé ça et qu'il n'a pas touvé de solution merci de me le dire aussi question de ne pas tester quelque chose d'impossible

    Merci d'avance.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 215
    Points : 558
    Points
    558
    Par défaut
    Au pire, si tu ne trouves pas de fonction pour lire le fichier en une fois, rien ne t'empêche de lire ton fichier XML comme un fichier texte normal, ligne par ligne, et de le reconstituer au fur et à mesure dans ta chaîne (en rajoutant les sauts de ligne supprimés par la fonction de lecture)

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Points : 562
    Points
    562
    Par défaut
    Bonsoir,

    C'est possible mais si ton fichier est trop volumineux alors peut-être ce n'est pas possible de faire avec un String.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    org.jdom.Document document;
     
    try{
        org.jdom.input.SAXBuilder sxb = new SAXBuilder();
        document = sxb.build(new SAXBuilder("monfichier.xml");
        String out = new XMLOutputter(Format.getPrettyFormat()).outputString(document);
     
    } catch (JDOMException e) {
        System.err.println("Erreur parse JDOM " + e.getMessage());
    } catch (IOException e) {
        System.err.println("Erreur IO " + e.getMessage());
    }
    Dans la chaine out tu as le contenu de ton fichier.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 24
    Points
    24
    Par défaut
    Bonjour,
    à michel.bosseaux :
    Merci j'ai tester de le lire ligne par ligne, ça marche bien, mais c'est un petit peu long.

    à ttttnht :
    Merci pour cette solution élégante :
    j'ai du remplacé un constructeur pour que ça marche.
    ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     document = sxb.build(new File("fichier.xml"));
    Voilà le code qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    org.jdom.Document document;
     
    try{
        org.jdom.input.SAXBuilder sxb = new SAXBuilder();
        document = sxb.build(new File("fichier.xml"));
        out = new XMLOutputter(Format.getPrettyFormat()).outputString(document);
        // .outputString(document)
    } catch (JDOMException e) {
        System.err.println("Erreur parse JDOM " + e.getMessage());
    } catch (IOException e) {
        System.err.println("Erreur IO " + e.getMessage());
    }
    Encore merci pour vos réponses.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 215
    Points : 558
    Points
    558
    Par défaut
    PS : lire un fichier texte ligne par ligne n'est pas "un petit peu long", c'est une boucle while avec comme condition une instruction de lecture de ligne dans le fichier. Si elle réussit, tu ajoutes ce que tu viens de lire à la chaîne complète. 3/4 lignes de code, c'est long pour toi ?

    Mais c'est vrai que c'est plus élégant d'utiliser les méthodes qui existent déjà.

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

Discussions similaires

  1. comment faire de 2 Strings 1 seul double ?
    Par CosaNostra dans le forum Débuter avec Java
    Réponses: 20
    Dernier message: 12/07/2010, 11h06
  2. Comment faire passer un string en ligne de commande ?
    Par cococococococo dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 27/06/2007, 17h15
  3. [SimpleXML] Comment faire pour transformer un fichier XML en PHP ?
    Par magic8392 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/09/2005, 16h22
  4. Calcul/Somme XML / XSL , comment faire ?
    Par Superpoisson dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 23/09/2005, 12h28
  5. [Noob][XML][XSL]Comment faire ceci ??
    Par Devil666 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 31/08/2005, 16h00

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