簡體   English   中英

在Java中使用getElementsByTagNameNS()時,如何檢查節點是否存在?

[英]When using getElementsByTagNameNS() in Java how do you check to see if the node exists?

如果我要遍歷嵌套節點,有時其中一個節點存在,而其他節點則不是如何檢查,所以我沒有得到NullPointerException?

例如,如果我正在做這樣的事情,並且它出現在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>

NodeList.item()的javadoc,它表示以下內容:

NodeList中位於索引位置的節點,如果不是有效索引,則為null。

因此,看來您的情況下未找到任何節點,因此list為空。 您可以在調用getTextContent()方法之前添加檢查,例如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM