Bonjour,
Bienvenue à moi, c'est mon premier sos dans ce forum. j'ai un pb pour parser le fichier Translators.xml (que j'ai écris moi même avec Dom), mais ça ne marche pas.
Il n'ya pas des erreurs de compilation, donc les packages sont bien configurés, mais à l'exécution il me donne l'erreur de NullPointerException à la ligne :
typeClass=(String)eleMapNode.getNodeName();
Donc il ne reconait pas les childs de <TranslatorMap> !
S'il vous plait, comme c'est assez urgent, pouvez-vous me répondre au plus vite!
Merci d'avance,[quote]
voici le code:
import java.io.*;
import javax.xml.parsers.*;
//import com.sun.xml.tree.*;
import org.w3c.dom.*;
import java.util.*;
public class test{
public static void main (String argv []) throws DOMException {
HashMap m_transMap =new HashMap();
try {
Node titleNode,countNode,MapNode,eleMapNode;
String count,typeClass,transClass;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
FileInputStream fis = new FileInputStream(new File("translators.xml" ));
Document docTrans = builder.parse(fis);
titleNode = docTrans.getChildNodes().item(0);
countNode= titleNode.getChildNodes().item(1);
Node mapNode=titleNode.getChildNodes().item(2);
Text countText = (Text)countNode.getChildNodes().item(0);
count =countText.getData();
for (int i = 0; i < new Integer(count).intValue(); i++) {
eleMapNode=mapNode.getChildNodes().item(i);
typeClass=(String)eleMapNode.getNodeName();
// System.out.println("typeClass="+ typeClass);
transClass=(String)(eleMapNode.getAttributes().item(0)).getNodeValue();
Class clazz = Class.forName(transClass);
m_transMap.put(typeClass, clazz.newInstance());
}
}
catch (ParserConfigurationException pce) {
pce.printStackTrace();
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
Voici le fichier translators.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <DataStorage DataStorage="DataOfTranslators">
<NumberofTranslators>16</NumberofTranslators>
- <TranslatorMap>
<java.lang.String value="org.ungoverned.radical.util.translator.StringTranslator" />
<javax.swing.border.TitledBorder value="org.ungoverned.radical.util.translator.BorderTranslator" />
<javax.swing.border.MatteBorder value="org.ungoverned.radical.util.translator.BorderTranslator" />
<java.lang.Short value="org.ungoverned.radical.util.translator.ShortTranslator" />
<java.lang.Character value="org.ungoverned.radical.util.translator.CharacterTranslator" />
<java.lang.Long value="org.ungoverned.radical.util.translator.LongTranslator" />
<javax.swing.border.SoftBevelBorder value="org.ungoverned.radical.util.translator.BorderTranslator" />
<javax.swing.border.BevelBorder value="org.ungoverned.radical.util.translator.BorderTranslator" />
<java.awt.Color value="org.ungoverned.radical.util.translator.ColorTranslator" />
<java.lang.Double value="org.ungoverned.radical.util.translator.DoubleTranslator" />
<java.lang.Integer value="org.ungoverned.radical.util.translator.IntegerTranslator" />
<javax.swing.border.LineBorder value="org.ungoverned.radical.util.translator.BorderTranslator" />
<javax.swing.border.EtchedBorder value="org.ungoverned.radical.util.translator.BorderTranslator" />
<java.lang.Float value="org.ungoverned.radical.util.translator.FloatTranslator" />
<java.lang.Boolean value="org.ungoverned.radical.util.translator.BooleanTranslator" />
<javax.swing.border.EmptyBorder value="org.ungoverned.radical.util.translator.BorderTranslator" />
</TranslatorMap>
</DataStorage>