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 :

Récupérer les données d'une balise précise


Sujet :

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

  1. #21
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Merci de votre réponse.

    J'ai testé mais le problème est que j'obtiens cette réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    client
    1141.28.98.15413448422621344842503vmm_kvmdummy1344842262134484226213448422621344842503134484250313448425032
    Client2
    0141.28.98.11013406369771344522423vmm_kvmdummy1340636977134063697813406369781344522422134452242213445224232
    .....
    Mais je veux juste cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    client
    1141.28.98.154
    Client2
    0141.28.98.110
    Que dois je faire pour?
    Je m'excuse de vous importunité mais j'ai du mal à récupérer que les adresses IP.
    Car dans les balises <HISTORY_RECORDS> il y a d'autres balises.

    Merci

  2. #22
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Je voulais juste allégée la structure mais elle est de la sorte:

    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
    <HISTORY_RECORDS>
       <HISTORY>
          <SEQ>1</SEQ>
          <HOSTNAME>141.28.98.15</HOSTNAME>
          <HID>4</HID>
          <STIME>1344842262</STIME>
          <ETIME>1344842503</ETIME>
          <VMMMAD>vmm_kvm</VMMMAD>
          <VNMMAD>dummy</VNMMAD>
          <PSTIME>1344842262</PSTIME>
          <PETIME>1344842262</PETIME>
          <RSTIME>1344842262</RSTIME>
          <RETIME>1344842503</RETIME>
          <ESTIME>1344842503</ESTIME>
          <EETIME>1344842503</EETIME>
          <REASON>2</REASON>
       </HISTORY>
    </HISTORY_RECORDS
    Et je ne veux que le <HOSTNAME> </HOSTNAME>

    Merci pour votre aide.

  3. #23
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Si vous voulez..., je repète aussi avec des changements tout le temps.

    Si la ligne pour UNAME marche, la ligne suivant derait marcher aussi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
             Element courant = (Element)i.next();    //ligne #37
             System.out.println(courant.getChild("UNAME").getText());
             System.out.println(courant.getChild("HISTORY_RECORDS").getChild("HISTORY").getChild("HOSTNAME").getText());

  4. #24
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup.

    Et je m'en excuse encore pour tout ses changement de dernières minutes.

    Je vais maintenant ècrire toutes les données dans un fichier texte.

  5. #25
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 560
    Points : 21 622
    Points
    21 622
    Par défaut
    Citation Envoyé par Ariania Voir le message
    Je m'excuse de vous importunité mais j'ai du mal à récupérer que les adresses IP.
    Car dans les balises <HISTORY_RECORDS> il y a d'autres balises.
    Quelqu'un qui comprend quelque chose à XML aurait trouvé évident qu'il fallait juste chaîner les getChild() -_-°. Mais bon, c'était une question vache.

    Au passage, si tu veux vraiment que les <HOSTNAME> et pas les <UNAME>, ça aurait été encore plus simple avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getDescendants(Filters.element("HOSTNAME"))
    Pas besoin de s'embêter avec le chemin complet.

  6. #26
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Effectivement vous avez sans doute raison mais heureusement que vous etes censé aider les gens sans tenir compte du niveau d'expertise dans le domaine. Il y a une différence entre connaitre le fonctionnement (l'écriture) en XML et le parsing en JAVA.

  7. #27
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 560
    Points : 21 622
    Points
    21 622
    Par défaut
    Citation Envoyé par Ariania Voir le message
    Effectivement vous avez sans doute raison mais heureusement que vous etes censé aider les gens sans tenir compte du niveau d'expertise dans le domaine.
    C'est pour ça que j'admets que cette question était vache. Ça ne se fait pas de demander "Mais, tu comprends <truc>, au moins ?" quand il est clair que la personne ne comprend pas bien <truc>.
    Il n'empêche que tu n'es pas plus avancé en disant le contraire -_-°.

    Citation Envoyé par Ariania Voir le message
    Il y a une différence entre connaitre le fonctionnement (l'écriture) en XML et le parsing en JAVA.
    Sauf que ce qu'il te manquait, ce n'était pas du Java, c'était du XML. En Java, tout ce qu'il te fallait, c'était JDOM, SAXBuilder, getChildren(), et getChild(). Tu les avais déjà.

    Le fonctionnement de XML ce n'est pas une écriture. Une écriture n'a pas de fonctionnement, il n'y a rien à comprendre, une écriture est.
    XML c'est un format de document. L'écriture n'est qu'un moyen de représenter ce document.

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <HISTORY_RECORDS>
       <HISTORY>
          <HOSTNAME>141.28.98.15</HOSTNAME>
      </HISTORY>
    </HISTORY_RECORDS>

    Représente un élément nommé "HISTORY_RECORDS", qui a un fils nommé "HISTORY", qui a un fils nommé "HOSTNAME", qui contient le texte recherché.

    Fils de fils de fils, donc getChild(), getChild(), getChild().

    C'est ça qui te manque. Savoir que XML a un sens, et lire des tutoriels XML si tu veux pouvoir t'en servir.

  8. #28
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    J'arrive un peu tard sur la discussion, mais je pense que l'utilisation d'un XPath serait peut-être plus adapté dans la mesure où tu ne cherches à récupérer que quelques données précises.

    Là encore, il sera nécessaire de plonger un peu dans la doc XML+XPATH pour s'en sortir, mais les moyens Java mis en oeuvres seront relativement simples.

  9. #29
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 560
    Points : 21 622
    Points
    21 622
    Par défaut
    Citation Envoyé par Deaf Voir le message
    J'arrive un peu tard sur la discussion, mais je pense que l'utilisation d'un XPath serait peut-être plus adapté dans la mesure où tu ne cherches à récupérer que quelques données précises.

    Là encore, il sera nécessaire de plonger un peu dans la doc XML+XPATH pour s'en sortir, mais les moyens Java mis en oeuvres seront relativement simples.
    Pour un cas trivial comme celui-ci, getDescendants(Filters.element("HOSTNAME")) est bien suffisant et nettement plus simple.

  10. #30
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Merci thelvin pour ta réponse.

    Je voudrais savoir pourquoi lorsque je veux écrire dans un fichier texte toutes les données récoltées il n'y a que la dernière qui s'écrit voici le code:
    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
    22
    static void afficheHOSTNAME() throws IOException
       {
          String HostName = "";
          String Name = "";
          List listNom = racine.getChildren("VM");
     
          Iterator i = listNom.iterator();
          while(i.hasNext())
          {
                  Element courant = (Element)i.next(); 
                // System.out.println(courant.getChild("NAME").getText());
                 Name = courant.getChild("NAME").getText();
                 //System.out.println(courant.getChild("HISTORY_RECORDS").getChild("HISTORY").getChild("HOSTNAME").getText());
                 HostName = courant.getChild("HISTORY_RECORDS").getChild("HISTORY").getChild("HOSTNAME").getText(); 
                 File file = new File("file.txt");
                 PrintWriter out = new PrintWriter(new FileWriter(file));
                 out.println(Name +":"+HostName); 
                 out.close(); 
     
          }
     
       }

  11. #31
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 996
    Points
    7 996
    Par défaut
    C'est normal, tu recrées un nouveau fichier texte pour chacun des éléments (dans ta boucle while). Ouvre et ferme ton fichier en dehors de ton while.

  12. #32
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Ah ouiiiiii c'est vrai . Quelle tete en l'air!

    Merci beaucoup.

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/09/2006, 14h41
  2. récupérer les données d'une fenetre
    Par snoopo dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 23/06/2006, 17h23
  3. Réponses: 15
    Dernier message: 20/06/2006, 10h29
  4. Récupérer les données après une recherche
    Par cdumas dans le forum Access
    Réponses: 7
    Dernier message: 04/05/2006, 12h09
  5. Récupérer les données d'une iframe
    Par juli1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/02/2005, 22h53

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