java - XML 解析抛出 NullPointerException

标签 java xml jaxb

我已将以下代码输入到文件中,但它抛出 NullPointerException。我正在尝试使用 DOM 解析器解析 resource.xml 文件。第一项打印成功,但在第二次迭代时卡住了。

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());

最佳答案

for(int j=0;j<fieldsList.getLength();j++)应该是for(int j=0;j< itemDetails.getLength();j++)

关于java - XML 解析抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35210520/

相关文章:

java - 将 Httpsurlconnection 与 REST "POST"函数一起使用时,找不到文件异常

java - 为什么在打印 int[] 时会得到垃圾输出?

xml - xsd 中的可为空 bool 字段

wsdl - JAX-WS 与 JAXB 教程

java - Jaxb2Marshaller 无法以线程安全的方式解码非 XmlRoot 元素

java - 使用 Jackson 反序列化任意 JSON

java - Java/Groovy 中的重试响应式事件处理

Java 正则表达式转大写

android - 在android中通过ant脚本更改应用程序名称

javascript - 在 JavaScript 和 xml 中计算天数