2017-01-10 48 views
0

如果我通過嵌套節點迭代,其中一個節點有時和其他人不是我如何檢查,所以我沒有得到一個NullPointerException?在Java中使用getElementsByTagNameNS()時,如何檢查節點是否存在?

例如,如果我正在做這樣的事情,它涉及到一個idNumber不在那裏的集合,它會引發一個NullPointerException。

<code> 
     NodeList nl = docEle.getFirstChild().getChildNodes(); 
      int length = nl.getLength(); 
      System.out.println(length); 
      for (int i = 0; i < length; i++) { 
       if (nl.item(i).getNodeType() == Node.ELEMENT_NODE) { 
         idNumber = el.getElementsByTagNameNS("urn:example","idNumber").item(0).getTextContent(); 
      } 
    </code> 

回答

0

HereNodeList.item()的Javadoc,它說以下內容:

在NodeList中index個位置的節點,則返回null不是一個有效的索引。

因此,看起來你的情況下沒有找到節點,因此list是空的。您可以在致電getTextContent()方法之前添加支票,例如:

NodeList list = el.getElementsByTagNameNS("urn:example","idNumber"); 
if(list.getLength() > 0){ 
    idNumber = list.item(0).getTextContent(); 
} 
相關問題