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 :

XML noeud suivant getNextSibling()


Sujet :

Android

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 35
    Points : 14
    Points
    14
    Par défaut XML noeud suivant getNextSibling()
    Bonjour à tous, je souhaiterais obtenir le noeud suivant d'un noeud.

    Pour cela j'utilise la méthode getNextSibling().

    Voici le fichier xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <channel>
        <title>1er titre</title>
        <description>description 1er titre </description>
    </channel>
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    NodeList nodeList = doc.getElementsByTagName("title");    
    for (int i = 0; i < nodeList.getLength(); i++) {
      	Node node = nodeList.item(i);		      
      	BfcZoom uneInformation = new BfcZoom(node.getTextContent(),node.getNextSibling().getTextContent());
            ret.add(uneInformation);
    }
    Je suis au niveau de title, j'arrive bien à récupère le contenu de title, mais je n'arrive pas à récupérer le contenu de description.

    Savez-vous pourquoi? merci d'avance

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Peut être qu'il faudrait faire comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NodeList nodeList = doc.getElementsByTagName("channel");
    pour avoir justement toute ta liste, car on prenant comme référence title je ne suis pas sûr qu'il a les autres tags dans la liste .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 35
    Points : 14
    Points
    14
    Par défaut
    Merci de ta réponse Feanorin je vais essayer . J'avais trouvé une réponse un peu par hasard, il fallait juste doubler le getNextSibling.

    Ce qui me donnait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     node.getNextSibling().getNextSibling().getTextContent()
    Mais pas très jolie..

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    En fait le getNextSibling() renvoit bien le noeud suivant...

    Sauf que d'après le XML le noeud suivant l'élément "title", n'est pas l'élément "description", mais un noeud de 'texte' contenant le retour à la ligne et l'indentation....

    Pour parser du XML en 'pull', je conseille vivement l'approche "je ne suis pas sur que le format sera toujours pareil" et faire:

    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
     
    NodeList nodeList = doc.getElementsByTagName("channel");    
    for (int ic = 0; (ic < nodeList.getLength());) {
        Element channelElt = (Element) nodeList.item(ic++);
        String title = null;
        String description = null;
     
        NodeList titleList = channelElt.getElementsByTagName("title");
        if (titleList != null && titleList.getLength() > 0)
            title = titleList.item(0).getTextContent();
     
        NodeList descList = channelElt.getElementsByTagName("title");
        if (descList != null && descList.getLength() > 0)
            description = descList.item(0).getTextContent();
    }
    C'est plus verbeux certes, c'est plus lent, re-certes, mais c'est lisible, compréhensible, et... ça marche même si "description" arrive avant "title".
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. [Editeur XML] reconnaissance suivant extension MIME
    Par JMLLB dans le forum NetBeans
    Réponses: 4
    Dernier message: 09/07/2007, 15h19
  2. XML noeud existe
    Par horzy dans le forum VB.NET
    Réponses: 4
    Dernier message: 06/07/2007, 16h00
  3. XML noeud et sauvegarder
    Par eclesia dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 08/06/2007, 14h42
  4. [Conception] Créer XML en suivant un XSD
    Par Orthonic dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/01/2007, 22h51
  5. XSLT > Acceder un élement du noeud suivant
    Par soize dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/01/2005, 15h33

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