Java xml

Résolu
mizamiza -  
 mizamiza -
Bonjour,
je parse ce fichier avec java :
<?xml version="1.0" encoding="UTF-8"?>
<bests>
<best>
<nom>miza</nom>
<score>100</score>
</best>
<best>
<nom>maryem</nom>
<score>100</score>
</best>
</bests>
il se bloque à cette ligne de code :
Element racine = document.getRootElement();
l'erreur c'est "Root element not set"
qq1 peur m'aider? merci d'avance

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Comment te dire où est l'erreur sans avoir ton code ?
    Il faudrait au minimum que l'on sache ce qu'est document, et comment il est initialisé vu que c'est lui qui provoque ton erreur...
    0
    1. mizamiza
       
      public List lireBests()
      {
      //On crée une instance de SAXBuilder
      SAXBuilder sxb = new SAXBuilder();
      org.jdom.Document document = new Document();
      try
      {
      //On crée un nouveau document JDOM avec en argument le fichier XML
      //Le parsing est terminé ;)
      document = sxb.build(new File("bests.xml"));
      }
      catch(Exception e){}

      //On initialise un nouvel élément racine avec l'élément racine du document.
      Element racine = document.getRootElement();
      return(list);
      }
      0
    2. mizamiza
       
      ce meme code marche dans un autre projet mais dans ce projet !!
      0
    3. KX Messages postés 19031 Statut Modérateur 3 020
       
      Que dit-il avec ceci ?
      Remarque ton return (list), je l'ai remplacé aussi mais je sais pas si c'est getContent() que tu veux...

      public List lireBests()
      {
      	try 
      	{
      		SAXBuilder sxb = new SAXBuilder();
      		Document document = sxb.build(new File("bests.xml"));
      		Element racine = document.getRootElement();
      		return racine.getContent(); // ???
      	} 
      	catch (Exception e)
      	{
      		e.printStackTrace();
      		return null;
      	} 
      }
      0
    4. mizamiza
       
      merci KX ça m'a inspiré en fait mon code est correct j'ai juste oublié la ligne "List list = racine.getChildren()" l'erreur c'est que il fallait mettre le fichier XML dossier bin de mon projet

      ce code donc est fonctionnel et retourne le contenu de mon fichier sous la forme d'une liste pour la parser il faut se servir d'un iterator

      public List lireBests()
      {
      //On crée une instance de SAXBuilder
      SAXBuilder sxb = new SAXBuilder();
      org.jdom.Document document = new Document();
      try
      {
      //On crée un nouveau document JDOM avec en argument le fichier XML
      //Le parsing est terminé ;)
      document = sxb.build(new File("bests.xml"));
      }
      catch(Exception e){}

      //On initialise un nouvel élément racine avec l'élément racine du document.
      Element racine = document.getRootElement();
      List list = racine.getChildren();
      return(list);
      }
      0