我已经进入下面的代码文件,但它抛出NullPointerException
。我正在尝试使用DOM解析器解析resource.xml文件。第一项成功打印,但它在第二次迭代中得到了解决。XML解析抛出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());
它的工作,但你能解释它为什么第一次工作,但不是第二次? –
元素的数量是相同的字段数,那么为什么它,如果我用fieldsList.getLength() –
它随机失败时有更多领域的项目失败?这是一个微不足道的错误,你用错了反复迭代 –