在Java中使用getElementsByTagNameNS()时,如何检查节点是否存在?

时间:2017-01-10 22:03:54

标签: java xml dom

如果我正在迭代嵌套节点,其中一个节点有时会出现其他节点,那么我不知道如何检查它,所以我没有得到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>

1 个答案:

答案 0 :(得分:0)

HereNodeList.item()的javadoc,它说如下:

  

NodeList中索引位置的节点,如果不是有效索引,则为null。

因此,看起来在您的案例中找不到节点,因此list为空。您可以在调用getTextContent()方法之前添加一个检查,例如:

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