Я ввел ниже код в файл, но он выбрасывает NullPointerException
. Я пытаюсь проанализировать файл resource.xml с помощью DOM parser. Первый элемент печатается успешно, но он запускается на второй итерации.XML parsing throwing NullPointerException
package readXmlProject;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class readXml {
public static void main(String[] args){
try{
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("resource.xml");
doc.getDocumentElement().normalize();
NodeList fieldsList = doc.getElementsByTagName("records").item(0).getChildNodes();
System.out.println(fieldsList.getLength());
for (int i = 0; i < fieldsList.getLength(); i++) {
NodeList itemDetails = fieldsList.item(i).getChildNodes();
for(int j=0;j<fieldsList.getLength();j++){
System.out.println(itemDetails.item(j).getTextContent());
}
}
}
catch(Exception e){
e.printStackTrace();
};
}
public static void getFieldsList(Document doc){
NodeList fieldsList = doc.getElementsByTagName("fields").item(0).getChildNodes();
for (int i = 0; i < fieldsList.getLength(); i++) {
System.out.println(fieldsList.item(i).getNodeName());
}
}
}
После выполнения приведенный выше код ниже является выход:
100
1
1438929000
'00851'
BNC SUVIDHA SPL
1
BBS
BHUBANESWAR
'00:00:00'
'22:50:00'
0
BBS
BHUBANESWAR
BNC
BANGALORE CANT
java.lang.NullPointerException
at readXmlProject.readXml.main(readXml.java:22)
В соответствии с вышеуказанной ошибкой, ниже линии вызывает ошибку
System.out.println(itemDetails.item(j).getTextContent());
Это сработало, но вы можете объяснить, почему он работал в первый раз, но не второй? –
Число элементов такое же, как количество полей, то почему это не сработало, если я использовал поляList.getLength() –
, это случайный случай, когда есть больше полей для этих элементов? это тривиальная ошибка, вы повторяли неправильную итерацию –