java.lang.NullPointerException XML标记

时间:2014-12-21 00:48:16

标签: java xml null

我有一个xml文档(我认为)有点奇怪的结构让我有点烦恼。它看起来如下:

<Test1>84.23</Test1>
<Test2>2014-12-01</Test2>
<Test3></Test3>
<Test4>Green</Test4>
<Test5>Bottle</Test5>
<Test6/>
<Test7/>

问题是标记<Test3></Test3>的结构,因为您可以查看其他标记 - 当为空时 - 仅提供标记<Test6/>

对于&#34;正常&#34;标签(例如<Test6/>)我可以使用以下代码检查它是否为空,为null或返回0。

if(eElement.getElementsByTagName("Test6").item(0).getTextContent().isEmpty() 
                    || eElement.getElementsByTagName("Test6").item(0).getTextContent().trim().length() == 0
                    || eElement.getElementsByTagName("Test6").item(0).getTextContent() == null)        
                    {
                        array[1] = null;
                    } 

但是,当在<Test3></Test3> - 代码结构上应用上述代码时,我总是得到java.lang.NullPointerException

我也尝试在if语句中应用"".equals(eElement.getElementsByTagName("Test6").item(0).getTextContent()),但仍然会抛出null异常。

如果Test3 -tag为空,0或null,我想要做的就是将数组[1]设置为null。我做错了什么,如何解决?

1 个答案:

答案 0 :(得分:1)

我希望对getElementsByTagName("Test6")的调用返回空NodeList。如果您在空item(...)上致电NodeList,则无论索引是什么,都会返回null。然后,您尝试在null上调用方法,并为您提供NPE。

  

我做错了什么以及如何解决?

在尝试索引之前,您需要测试NodeList大小。或者测试null

提示:阅读javadocs!