我已經進入下面的代碼文件,但它拋出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() –
它隨機失敗時有更多領域的項目失敗?這是一個微不足道的錯誤,你用錯了反覆迭代 –