我有一个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。我做错了什么,如何解决?
答案 0 :(得分:1)
我希望对getElementsByTagName("Test6")
的调用返回空NodeList
。如果您在空item(...)
上致电NodeList
,则无论索引是什么,都会返回null
。然后,您尝试在null
上调用方法,并为您提供NPE。
我做错了什么以及如何解决?
在尝试索引之前,您需要测试NodeList
大小。或者测试null
。
提示:阅读javadocs!