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 :

Lire une chaine XML


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é
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut Lire une chaine XML
    Bonsoir tous le monde,
    je veux savoir est ce qu'il y a un moyen de lire une chaine de caractère XML sans passé par un fichier.
    sa veux dire sans écrire cette chaine dans un fichier et puis la lire.
    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maChaine=<?xml version="1.0" encoding="UTF-8"?><Choix><personne><nom>MonNom</nom><Prenom>MonPrenom</Prenom></personne></Choix>

    merci

  2. #2
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Salut,

    est ce qu'il y a un moyen de lire une chaine de caractère XML sans passé par un fichier.


    La lire ?

    si tu fait un System.out.print(maChaine) tu devrais pouvoir la lire mais avant assure toi de la convertir en String parce qu'avec les """" tu ne vas pas t'en sortir.

    Il faudrait que tu fasse une fonction de conversion qui met des / avant les ".

    J'espère avoir été clair .

  3. #3
    Membre Expert
    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
    Par défaut
    (cf http://java.sun.com/j2se/1.4.2/docs/...erFactory.html )

    Si tu tiens à parser ta chaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    InputSource s = new InputSource(new StringReader(myString))); 
    document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(s);

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut
    Citation Envoyé par mouss4rs Voir le message
    La lire ?
    si tu fait un System.out.print(maChaine) tu devrais pouvoir la lire mais avant assure toi de la convertir en String parce qu'avec les """" tu ne vas pas t'en sortir.
    .
    mouss4rs peut que c'est moi qui n'étais pas claire.
    "Lire" c'est pas l'afficher mais récupéré les valeurs qui sont dans la chaine XML .

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maChaine=<?xml version="1.0" encoding="UTF-8"?><Choix><personne><nom>MonNom</nom><Prenom>MonPrenom</Prenom></personne></Choix>
    j'aurai genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String  nom = MonNom;
    String  prenom = MonPrenom;

    @Marbo :
    j'ai pas compris comment récupéré les valeurs a partir de "document "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String maChaine="<?xml version=\"1.0\" encoding=\"UTF-8\"?><Choix><personne>"+
    		"<nom>MonNom</nom><Prenom>MonPrenom</Prenom></personne></Choix>";
    		InputSource s = new InputSource(new StringReader(maChaine)); 
    		Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(s);

  5. #5
    Membre Expert
    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

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut
    merci Morbo pour le lien que vous m'avez donner et j'ai déjà lu
    seulement, dans la partie Comment parcourir l'arborescence d'un DOM
    n'explique pas bien pour quelqu'un qui n'est pas professionnel en XML .
    pourriez-vous être plus précis ?

    j'ai essayé ce bout de code , il ma l'air simple mais quand même ne marche pas :
    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
    String maChaine="<?xml version=\"1.0\" encoding=\"UTF-8\"?><Choix><personne>"+
    		"<nom>MonNom</nom><Prenom>MonPrenom</Prenom></personne></Choix>";
     
    		InputSource s = new InputSource(new StringReader(maChaine)); 
     
    		Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(s);		
    		Element racine = (Element) document.getDocumentElement();
     
    		List Perso = racine.getChildren("personne");
     
    		//On crée un Iterator sur notre liste
    		Iterator i = Perso.iterator();
     
    		Element courantI = (Element)i.next();
     
    		//On affiche le nom de l'element courant
    		String name = (courantI.getChild("nom").getText());
     
    		System.out.println(name);

    ERREUR:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception in thread "main" java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredElementImpl cannot be cast to org.jdom.Element
    	at Lire_XML.main(Lire_XML.java:41)
    la ligne 41 correspond à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		Element racine = (Element) document.getDocumentElement();

  7. #7
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    D'après le message d'erreur le problème viens du cast en Element
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element racine = (Element) document.getDocumentElement();
    La trace indique que tu veux caster en org.jdom.Element or la méthode document.getDocumentElement() renvoie un org.w3c.dom.Element. Je pense que tu as le mauvais Element dans tes imports.
    Regarde dans tes imports du devrais avoir l'import suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import org.jdom.Element;
    remplace le par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import org.w3c.dom.Element;
    Le cast n'est alors plus nécessaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element racine = document.getDocumentElement();
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/09/2006, 08h33
  2. Réponses: 4
    Dernier message: 11/05/2006, 14h41
  3. [VB.NET] Charger une chaine XML
    Par Dnx dans le forum ASP.NET
    Réponses: 11
    Dernier message: 17/03/2005, 14h55
  4. [VB.NET] Alimenter un dataset avec une chaine XML...
    Par David.V dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/05/2004, 09h09
  5. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37

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