2014-05-03 4 views
0

// Merci beaucoup à vous tous, le problème était dans ma déclaration dans le fichier XML.Résolu ...... DOM ... Exception dans le fil "principal"

Lorsque j'ai essayé d'exécuter ce code je reçois ce error..I ne sais pas où je suis allé mal

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at nventaire.test.main(test.java:10) 

>

import org.w3c.dom.*; 

import javax.xml.parsers.*; 

public class test { 
    public static void main(String[] args) throws Exception { 
     DocumentBuilderFactory factory = 
       DocumentBuilderFactory.newInstance(); 
     DocumentBuilder parser = 
       factory.newDocumentBuilder(); 
     Document doc = parser.parse(args[0]); 
     Element racine = doc.getDocumentElement(); 
     NodeList nl = racine.getElementsByTagName("joueur"); 
     for (int i = 0; i < nl.getLength(); ++i) { 
      Element joueur = (Element) nl.item(i); 
      NodeList listedenoms = joueur.getElementsByTagName("nom"); 
      Element nom = (Element) listedenoms.item(0); 
      System.out.println(nom.getFirstChild().getNodeValue()); 
     } 
    } 

thaks

+0

Et si vous vérifiez les arguments (longueur, contenu, etc.), que montre-t-il? – AntonH

+0

Avez-vous donné des arguments lors du démarrage du programme? – iHank

Répondre

0

Ceci est en fait la pile-trace de l'exception levée.

Je suppose qu'il se rapporte au tableau args - il n'est probablement pas défini avec n'importe quel élément et donc le ArrayIndexOutOfBoundsException lors de l'accès. Vous devriez appeler votre application avec des arguments pour que le tableau args ne sera pas vide et vous serez en mesure d'y accéder, comme:

//Call along with some argument: 
java test firstArgument 

//Then access 
Document doc = parser.parse(args[0]); 
+0

J'ai un fichier XML dans le même dossier. J'ai essayé avec java test test.xml mais j'ai reçu une erreur (Aucun fichier ou dossier de ce type) – KAMILIA

+0

Sur quel dossier se trouve le fichier 'xml'? –

+0

@ user3600078 Vous devriez avoir le fichier XML vivant en plus du 'test.class1' ou utiliser un chemin absolu. –

0

Vous n'avez pas d'arguments de ligne de commande. L'erreur est:

Document doc = parser.parse(args[0]); 

Puisque vous n'avez pas d'arguments de ligne de commande, args est un tableau vide et args[0] n'existe pas, ce qui provoque un ArrayIndexOutOfBoundsException.

Pour corriger, inclure un argument lorsque vous exécutez votre programme, ou un code dur dans

Inclure un argument:.

java [Program Name] [Whatever your argument is] 

Code dur dans:

Document doc = parser.parse("[Whatever your argument is]"); 
+0

comment faire pour supprimer l'erreur .... par ce que je devrais remplacer args [0]. – KAMILIA

+0

Eh bien, vous devez l'inclure lorsque vous exécutez votre programme –

+0

merci beaucoup, mais le problème était dans ma déclaration dans le Fichier XML – KAMILIA

Questions connexes