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 :

Pb avec les "BALISE vide" [DOM]


Sujet :

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

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 15
    Points : 14
    Points
    14
    Par défaut Pb avec les "BALISE vide"
    Mon environnement est le suivant:
    xerces-1_4_0
    JVM 1.3

    j'ai un fichier XML dont la structure est la suivante:
    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
     
    <individu>
    <personne>
           <nom_j_fille></nom_j_fille>
           <nom>Dupont</nom>
           <prenom>Jean</prenom>
           <age>45</age>
    </personne>
    <personne>
           <nom_j_fille>Durant</nom_j_fille>
           <nom>Demah</nom>
           <prenom>Sophie</prenom>
           <age>28</age>
    </personne>
    </individu>

    Ma question est la suivante:
    Comment (dans un programme JAVA) récupérer le contenu des balises <nom_j_fille> sans tenir compte des balises vides (<nom_j_fille></nom_j_fille>) ?

    Merci pour votre aide

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 63
    Points : 74
    Points
    74
    Par défaut
    je te donne une methode qui recupere du texte d'une balise, et qui renvoie une chaine vide si ya pas de texte
    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
     
    protected String getTextContentFromElement(Element e)
    {
    NodeList children = e.getChildNodes() ;
    String res = "" ;
    for (int i = 0; i < children.getLength() ; i++) {
    Node current = children.item(i) ;
    if (current.getNodeType() == Node.TEXT_NODE) {
    res = res + current.getNodeValue() ;
    }
    } // for
    return res ;
    } // getTextContentFromElement()
     
    exemple:
    if(getTxtContentFromElement(nom_j_fille).equals(""))
         System.out.println("balise vide");
    else
         System.out.println("balise non vide");

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 15
    Points : 14
    Points
    14
    Par défaut marche Pas
    Je me suis inspiré de ton exemple pour fabriquer cette méthode :

    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
     
    	protected void nom_j_fille(Element root)
    	{
    		NodeList j_fille = root.getElementsByTagName("nom_j_fille") ; 
    		String res = ""; 
    		for (int i = 0; i < j_fille.getLength() ; i++) 
    		{ 
    			Node current = j_fille.item(i).getFirstChild();
     
    			if (current.getNodeType() == Node.TEXT_NODE)
    			{ 
    				res = res + current.getNodeValue() ; 
    			} 
    		} // for 
     
    		if(res.equals("")) 
    		     System.out.println("balise vide"); 
    		else 
    		     System.out.println("balise non vide");
    	}// fin nom_j_fille()

    Quand la balise n’est pas vide (« nom _j_fille ») j’ai bien le message "balise non vide"
    Mais par contre rien ne marche quand la balise est vide :

    Exception in thread "main" java.lang.NullPointerException

    ou j'ai merdé ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 15
    Points : 14
    Points
    14
    Par défaut probleme Résolu
    voici :

    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
     
    protected void nom_j_fille(Element root) 
       { 
          NodeList j_fille = root.getElementsByTagName("nom_j_fille") ; 
          String res = ""; 
          for (int i = 0; i < j_fille.getLength() ; i++) 
          { 
             Node current = j_fille.item(i).getFirstChild(); 
     
             if (current != null) 
             { 
                res = res + current.getNodeValue() ; 
             } 
          } // for 
     
          if(res.equals("")) 
               System.out.println("balise vide"); 
          else 
               System.out.println("balise non vide"); 
       }// fin nom_j_fille()
    Merci encore

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/10/2012, 23h35
  2. [HTML 5] Interprétation CSS avec les nouvelles balises et Firefox
    Par Sayrus dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 15/11/2010, 18h46
  3. [CR9] Bug avec les champs à valeur vide ?
    Par Djob dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 15/07/2003, 21h21

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