Java 为什么会出现NullPointerException错误

Java 为什么会出现NullPointerException错误,java,xml,Java,Xml,对不起,我对Java知之甚少。我被交给这个密码来接管。基本上,我在String[]patient={EEElement.getElementsByTagNameName.item0.getTextContent,EEElement.getElementsByTagNameID.item0.getTextContent,EEElement.getElementsByTagNameacquisitionDate.item0.getTextContent,EEElement.getElementsBy

对不起,我对Java知之甚少。我被交给这个密码来接管。基本上,我在String[]patient={EEElement.getElementsByTagNameName.item0.getTextContent,EEElement.getElementsByTagNameID.item0.getTextContent,EEElement.getElementsByTagNameacquisitionDate.item0.getTextContent,EEElement.getElementsByTagNamepages.item0.getTextContent};当我运行代码时

下面是解析XML的块

//parse array of string arrays from xml file that represent the patient list we expect to see, needs to be sorted by acquisition date, in reverse chronological order.
File fxmlFile = new File("patientList.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fxmlFile);

doc.getDocumentElement().normalize(); //should not be necessary but recommended (http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work)

NodeList nList = doc.getElementsByTagName("patient");

String[][] retList = new String[nList.getLength()][4];

for(int i = 0; i < nList.getLength(); i++) {
Node nNode = nList.item(i);
Element eElement = (Element)nNode;
String[] patient = {eElement.getElementsByTagName("Name").item(0).getTextContent(), eElement.getElementsByTagName("ID").item(0).getTextContent(), eElement.getElementsByTagName("acquisitionDate").item(0).getTextContent(), eElement.getElementsByTagName("pages").item(0).getTextContent() };

retList[i] = patient;
}
这是XML文件

<?xml version="1.0"?>
<patients>
<patient>
<acquisitionDate>2015-04-03T10:03:49.0000000</acquisitionDate>
<id>9876543230</id>
<name>autoTestLast30, autoTestFirst30</name>
<pages>3</pages>
</patient>
</patients>

对代码进行格式化,使出现问题的行占用多行代码,这样可以更容易地确定错误所在位置,或在调试器中运行


检查您的标记,因为名称和名称、id和id不相同。

格式化代码,使出现问题的行包含几行,这将更容易确定错误所在,或在调试器中运行

eElement.getElementsByTagName("Name")
检查您的标签,因为名称和名称、id和id不相同

eElement.getElementsByTagName("Name")
计算结果为null并在示例中引发异常,请尝试:

eElement.getElementsByTagName("name") //case sensitive!
…这只是冰山一角,请注意所有标记名的大小写敏感度和拼写

计算结果为null并在示例中引发异常,请尝试:

eElement.getElementsByTagName("name") //case sensitive!

…这只是冰山一角,请注意所有标记名的大小写敏感度和拼写

方法getElementsByTagName的参数区分大小写。那么名字呢!=姓名,身份证!=更改xml文件元素名称以匹配代码,或更改代码中值的大小写以匹配xml文件中元素的大小写

方法getElementsByTagName的参数区分大小写。那么名字呢!=姓名,身份证!=更改xml文件元素名称以匹配代码,或更改代码中值的大小写以匹配xml文件中元素的大小写

可能的重复尝试将行拆分为不同的字符串,并检查哪一个为空。例如,String name=eElement.getElementsByTagNameName.item0.getTextContent;Sting ID=。。。所以你几乎不了解Java,有人给你这个代码来维护?你指出的这条线几乎有十几个地方可以投掷NPE。将它拆分成子行,然后检查它发生在哪一行。你是否使用了调试器并逐步通过代码找出空值?哇,我只想说你们很棒,一分钟之内我就有了答案…也许这真的很简单哈哈。谢谢!可能的重复尝试将行拆分为不同的字符串,并检查哪一个为空。例如,String name=eElement.getElementsByTagNameName.item0.getTextContent;Sting ID=。。。所以你几乎不了解Java,有人给你这个代码来维护?你指出的这条线几乎有十几个地方可以投掷NPE。将它拆分成子行,然后检查它发生在哪一行。你是否使用了调试器并逐步通过代码找出空值?哇,我只想说你们很棒,一分钟之内我就有了答案…也许这真的很简单哈哈。谢谢!此外,标记名在XML中是id,但他在代码中使用id。此外,标记名在XML中是id,但他在代码中使用id。