Al leer un archivo XML en Java, me sale dicho error. Dejo por aquí el código:
public static void main(String[] args) throws ParserConfigurationException, SAXException
{
try {
File file = new File("ficheroxmlejercicio2.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(file);
document.getDocumentElement().normalize();
System.out.println("Root Element :" + document.getDocumentElement().getNodeName());
NodeList nList = document.getElementsByTagName("persona");
System.out.println("----------------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Nombre : " + eElement.getElementsByTagName("nombre").item(0).getTextContent());
System.out.println("Apellido : " + eElement.getElementsByTagName("apellido").item(0).getTextContent());
System.out.println("Fecha de nacimiento : "+ eElement.getElementsByTagName("fecha_nacimiento").item(0).getTextContent());
NodeList nList2 = document.getElementsByTagName("fecha_nacimiento");
for (int temp2 = 0; temp2 < nList2.getLength(); temp2++) {
Node nNode2 = nList2.item(temp2);
System.out.println("\nCurrent Element :" + nNode2.getNodeName());
if (nNode2.getNodeType() == Node.ELEMENT_NODE) {
Element eElement2 = (Element) nNode2;
System.out.println("Día : " + eElement2.getElementsByTagName("día").item(0).getTextContent());
System.out.println("Mes : " + eElement2.getElementsByTagName("mes").item(0).getTextContent());
System.out.println("Año : " + eElement2.getElementsByTagName("año").item(0).getTextContent());
}
}
System.out.println("Ciudad : " + eElement.getElementsByTagName("ciudad").item(0).getTextContent());
}
}
}
catch(IOException e) {
System.out.println(e);
}
}
- El error es en la línea:
System.out.println("Fecha de nacimiento : "+ eElement.getElementsByTagName("fecha_nacimiento").item(0).getTextContent());
También adjunto foto de los imports:
Comentando la línea el programa funciona perfectamente, pero obviamente sin escribir dichas líneas por pantalla
El código lo he cogido de esta web, por si alguien le quiere echar un vistazo