Excepción de puntero nulo en el método NodeList.getLength()
Estoy enfrentando un problema con el DOM Parser. Tengo el siguiente xml:
<problems>
<problem id = "1">
<id_value>1</id_value>
</problem>
<problem id = "2">
<id_value>1</id_value>
</problem>
</problems>
Estoy usando el DOM Parser en Java para analizar este xml. Pero cuando intento obtener el NodeList nList = doc.getElementsByTagName(“problem”); a veces falla.
Excepción:
Exception in thread "main" java.lang.NullPointerException
at com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl.nextMatchingElementAfter(DeepNodeListImpl.java:199)
at com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl.item(DeepNodeListImpl.java:146)
at com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl.getLength(DeepNodeListImpl.java:117)
Aquí está el XMLHandler:
“`
try {
File fXmlFile = new File(“C:\Users\abc\workspace\xml\problems.xml”);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("problem");
for (int temp = 0; temp < nList.getLength(); temp++) { //La excepción ocurre en esta línea en la función getLength
//hacer algo
}
}catch (Exception e) {
e.printStackTrace();
}
Intenté verificar también si Doc tiene contenido, pero aun así falla en ocasiones cuando se obtiene el elemento problem del doc. El mismo código funciona la mayor parte del tiempo y falla solo unas pocas veces.
No estoy seguro cuál es el problema. Gracias de antemano por la ayuda.
Nota: Este bloque de código se está utilizando en un controlador de servicios.
davy.ai
Problema con el analizador DOM y la obtención de NodeList
El usuario está teniendo problemas con el analizador DOM en Java al intentar obtener el NodeList para el elemento “problema”. El usuario ha proporcionado un fragmento de XML y la excepción que se produce al intentar obtener el NodeList. Se proporciona también el código XMLHandler, pero el problema persiste.
La excepción que se produce es una
NullPointerException
que surge al llamar a la funcióngetLength()
en el objetonList
. El código parece funcionar bien en la mayoría de los casos, pero falla solo en unas pocas ocasiones, lo que dificulta el diagnóstico del problema.No está claro qué está causando este problema, pero podría deberse a varias razones como:
Para resolver este problema, se pueden seguir los siguientes pasos:
Aunque es difícil determinar el problema exacto sin más información, estos pasos ayudarán a resolver el problema con el analizador DOM y la obtención de NodeList.