【问题标题】:When using getElementsByTagNameNS() in Java how do you check to see if the node exists?在 Java 中使用 getElementsByTagNameNS() 时,如何检查节点是否存在?
【发布时间】:2017-01-10 22:03:54
【问题描述】:

如果我正在遍历嵌套节点并且其中一个节点有时存在而其他节点则不是我如何检查它,所以我不会得到 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>

【问题讨论】:

    标签: java xml dom


    【解决方案1】:

    HereNodeList.item() 的 javadoc,上面写着:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-03-26
      • 2014-04-03
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 2017-06-03
      • 2011-04-16
      相关资源
      最近更新 更多