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

Android Discussion :

[Débutant] Parcourir un fichier XML


Sujet :

Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien auto
    Inscrit en
    Décembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien auto

    Informations forums :
    Inscription : Décembre 2014
    Messages : 19
    Points : 6
    Points
    6
    Par défaut [Débutant] Parcourir un fichier XML
    Bonjour,
    malgré mes recherches je n'arrive pas à récupérer les valeurs incluses dans un fichier XML, j'ai parcouru des exemples dispo sur la toile mais
    je bloque systématiquement au même endroit: les "nœuds" lorsqu'il a plusieurs nœuds je cale.
    voila mon fichier XML:
    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
    20
     
    <?xml version="1.0" encoding="UTF-8"?>
    <livres>
    	<livre1>
    		<fonction>
    			EEEE
    		</fonction>
    		<fonction>
    			HHHH
    		</fonction>
    	</livre1>
    	<livre2>
    		<fonction>
    			HSA
    		</fonction>
    		<fonction>
    			FSA
    		</fonction>
    	</livre2>
    </livres>
    Je voudrai récupérer les valeur des balises fonction en fonction du choix fait (ex balise "livre2")

    mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    doc.getDocumentElement().getTagName().equals("livres");
    NodeList results = doc.getElementsByTagName("livre2");
     
        	    for (int i=0; i<results.getLength(); i++) {     	      
        	    Node node = results.item(i); 
        	    Element eElement2 = (Element) node;
        	    NodeList firstnameList2 = ((org.w3c.dom.Document) eElement2).getElementsByTagName("fonction");
        	    list.add(((Node)firstnameList2.item(0)).getNodeValue().trim());   	    
        	    }
    Merci pour votre aide, je tourne en rond depuis pas mal de temps!

  2. #2
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Slt,

    Avec JDOM (j'utilises peu DOM API),

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    racine = docExtrait.getRootElement();
                    List<Element> elements = racine.getChildren("livre2");
                    for (Element elt : elements) {
                        for(Element eltFct : elt.getChildren("fonction"){
                            String contenuText = eltFct.getText();
                        }
                    }
    //...
    PS: Attention à tes imports (regardes bien le package)


    Sur dvp tu trouveras ce tuto/cours ICI qui explique très bien jdom

    Bon courage ++
    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien auto
    Inscrit en
    Décembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien auto

    Informations forums :
    Inscription : Décembre 2014
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Bonjour freddou17,
    étant débutant je préfère rester sous DOM, passer sous JDOM va me compliquer les choses.
    J'y ai passé l’après midi et je n'ai pas avancé d'un pouce, je nage complet, le xml c'est pas ma tasse de thé!

    Merci quand même!!

  4. #4
    Membre régulier Avatar de gloax29
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Points : 70
    Points
    70
    Par défaut
    bonjour,
    commencer par la racine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Element results = doc.getDocumentElement ();
    		NodeList nodelist = results.getElementsByTagName("fonction") ;
    		for (int i = 0; i < nodelist.getLength(); i++) {
     
    			Element eElement2 = (Element)nodelist.item(i);
     
    			list.add(eElement2.getTextContent());
     
    		}

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien auto
    Inscrit en
    Décembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien auto

    Informations forums :
    Inscription : Décembre 2014
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Bonjour gloax29,
    ton bout de code va me donner le contenu de toutes les balises "fonction" à savoir: EEEE,HHHH,HSA,FSA alors que
    je cherche à récupérer uniquement le contenu en fonction du livre sélectionné (livre 1 ou 2).
    Autre chose, bien que j'ai la version 1.7 de Java le "getTextContent()" ne passe pas j'ai un message:
    "La méthode getTextContent() est indéfinie pour le type Element" y a une config particulière à faire?
    Merci pour votre aide.

  6. #6
    Membre régulier Avatar de gloax29
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Points : 70
    Points
    70
    Par défaut
    bonjour ,

    Citation Envoyé par lolo818 Voir le message
    Autre chose, bien que j'ai la version 1.7 de Java le "getTextContent()"
    regarde l'import !

    modif :
    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
    20
    21
     
     
    NodeList nodeList = results.getChildNodes();
            for (int j = 0; j < nodeList.getLength(); j++) {
                // test si cela est bien un Element
                if( !(nodeList.item(j) instanceof  Element))continue ;
                Element el = (Element) nodeList.item(j);
     
                if (el.getNodeName().equals("livre2")) {
     
                    NodeList nodelist2 = el.getChildNodes();
     
                    for (int i = 0; i < nodelist2.getLength(); i++) {
     
                        if( !(nodelist2.item(i) instanceof  Element))continue ;
                        Element eElement2 = (Element) nodelist2.item(i);
                        list.add(eElement2.getTextContent());
     
                    }
                }
            }

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien auto
    Inscrit en
    Décembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien auto

    Informations forums :
    Inscription : Décembre 2014
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    merci pour l'exemple mais le souci avec "getTextContent()" demeure entier.
    ben j'ai importé toutes les lib dispo dans JRE 1.7 mais c'est pareil,
    j'ai également testé avec xml-apis-1.3.04.jar en la mettant en début de projet mais rien ne change.
    Une piste?
    Bon réveillon!!

  8. #8
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Slt,
    tu peux lire ce post qui devrait t'aider...
    Peux tu nous mettre tes imports stp?

    Sincérement je pense que tu aurait gagner ton temps avec JDom (ce n'est pas plus compliqué)

    ++
    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Technicien auto
    Inscrit en
    Décembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien auto

    Informations forums :
    Inscription : Décembre 2014
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Merci pour le lien,
    j'ai testé, ça passe pas, même problème mais cette fois ci avec "getChildNodes()" .
    Il me faut résoudre ce problème d'import si non je ne pourrai pas aller plus loin.
    J'ai testé plusieurs solutions dispos sur le web mais en vain, bon faut dire que je ne maitrise pas trop cette situation....
    mes imports:


    Nom : Ecran1.jpg
Affichages : 124
Taille : 176,8 Ko

  10. #10
    Membre régulier Avatar de gloax29
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Points : 70
    Points
    70
    Par défaut
    Bonjour,
    quand je pensais au import, c'est ce de la class :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;
    Bon réveillon

  11. #11
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    pareil que @gloax29, peux tu mettre tes imports de classe stp...


    ++

    Happy christmas
    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Technicien auto
    Inscrit en
    Décembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien auto

    Informations forums :
    Inscription : Décembre 2014
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Ah oui pardon ça me prend tellement la tête que j'en oubli la base!
    donc voila mes imports:

    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;

    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;

    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;

    import android.content.ClipData.Item;
    import android.content.Context;
    import android.renderscript.Element;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.Spinner;
    import android.widget.Toast;

  13. #13
    Membre régulier Avatar de gloax29
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par lolo818 Voir le message
    Ah oui pardon ça me prend tellement la tête que j'en oubli la base!
    donc voila mes import:

    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;

    import android.content.ClipData.Item;
    import android.content.Context;
    import android.renderscript.Element; <== pas le bon import
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.Spinner;
    import android.widget.Toast;
    Ton problème est là!

    Bonne soirée!

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Technicien auto
    Inscrit en
    Décembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien auto

    Informations forums :
    Inscription : Décembre 2014
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    Joyeux Noêl !!!!
    Bravo et surtout merci pour l' import, c’était bien la source du problème !!!!
    Merci !!!

Discussions similaires

  1. (Débutant) Lire un fichier Xml
    Par Zikas-r dans le forum C#
    Réponses: 9
    Dernier message: 24/12/2007, 23h31
  2. Réponses: 3
    Dernier message: 06/08/2007, 03h44
  3. Parcourir un fichier Xml
    Par Kiboumz dans le forum VB.NET
    Réponses: 2
    Dernier message: 13/07/2007, 18h08
  4. [C#] Comment parcourir un fichier Xml ?
    Par Sebsheep dans le forum C#
    Réponses: 4
    Dernier message: 08/09/2006, 23h20
  5. [débutant]Parcourir un fichier XML
    Par Wis dans le forum ASP
    Réponses: 2
    Dernier message: 26/09/2005, 10h04

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