Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用GetElementsByTagnames()时,如何检查节点是否存在?_Java_Xml_Dom - Fatal编程技术网

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

在Java中使用GetElementsByTagnames()时,如何检查节点是否存在?,java,xml,dom,Java,Xml,Dom,如果我在嵌套节点中迭代,其中一个节点有时在那里,而其他节点则不在那里,那么我如何检查它以避免得到NullPointerException 例如,如果我正在做这样的事情,当它到达一个idNumber不存在的集合时,它会抛出一个NullPointerException <code> NodeList nl = docEle.getFirstChild().getChildNodes(); int length = nl.getLength();

如果我在嵌套节点中迭代,其中一个节点有时在那里,而其他节点则不在那里,那么我如何检查它以避免得到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 nl=docEle.getFirstChild().getChildNodes();
int length=nl.getLength();
系统输出打印长度;
for(int i=0;i
NodeList.item()
的javadoc,它说:

节点列表中位于索引第X个位置的节点,如果不是有效索引,则为null

因此,在您的案例中似乎没有找到节点,因此,
列表
为空。您可以在调用
getTextContent()
方法之前添加检查,例如:

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