Je dois parser un document XML et stocker les valeurs dans un fichier texte, quand je fais l'analyse des données normales (Si tous les tags ont des données) alors ça fonctionne bien, mais si un tag n'a pas de données alors il lance une "Null Pointer Exception" que dois-je faire pour éviter l'exception Null Pointer, veuillez me donner des suggestions avec des codes d'exemple.
John
Kaith
Jho
Directeur des Ventes
Sharon
Eunis
Shiny
mack
Consultant SAP
code:
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.File;
public class ReadXMLFile {
public static void main(String argv[]) {
try {
File fXmlFile = new File("c:\\file.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
System.out.println("Element racine :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("staff");
System.out.println("-----------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Prénom : " + getTagValue("firstname", eElement));
System.out.println("Nom de famille : " + getTagValue("lastname", eElement));
System.out.println("Surnom : " + getTagValue("nickname", eElement));
System.out.println("Département : " + getTagValue("Department", eElement));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static String getTagValue(String sTag, Element eElement) {
NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes();
Node nValue = (Node) nlList.item(0);
return nValue.getNodeValue();
}
}