java - 由于 null 无法执行 getNextSibling()

标签 java xml nullpointerexception

我正在使用 java 遍历 xml 树..现在我在使用 node.getPreviousSibling() 获取节点的兄弟节点时遇到问题,代码如下:

sibling = pointer.getPreviousSibling();
while (sibling==null){
                    System.out.println("YAAAAAA");

                    sibling = sibling.getPreviousSibling(); ///here is the error occured
                }

错误是 NullPointerException。 我知道如果没有 sibling , getPreviousSibling() 可能会返回 null 。 问题是:

  1. 为什么sibling.getPreviousSibling()给了我一个错误,而不是将空值分配给测试节点而不给我一个异常?
  2. 我应该怎么做才能让我的代码运行良好,即使它永远循环,因为同级将始终为空?

谢谢你..

编辑1:在上面的代码之前,我已经检查了指针是否为空

if(pointer==null){
System.out.println("NULL");
}

但是,它仍然表明指针不是空的.. 所以我想知道是什么触发了 NullPointerException

编辑2:我想出了另一种方法,似乎在分配指针时我犯了错误(不确定哪个是错误,但我确信有一个错误) 我的新方法是使用

获取节点父节点
Node parent =pointer.getParentNode();

从那里我选择我想要的 child ..

感谢 @almas 和 @demostene 指出我以错误的方式调用 getPreviousSibling

最佳答案

您应该在 while 循环中检查非 null 和非 null,如下所示:

while (sibling != null && sibling.getPreviousSibling() != null){

而不是

while (sibling==null){

关于java - 由于 null 无法执行 getNextSibling(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27447520/

相关文章:

javascript - WYSIWYG - 文本和代码编辑器

android - 将一个文本放在另一个文本旁边

php - 从模式猜测 XML 的根元素属性

java - JPA 和 Hibernate 实体的列表属性中的重复项

java - NullPointerException:println 需要一条消息

android - 从 kotlin 中的 fun 返回 null

java - request.getCookies() 抛出 NullPointerException 尽管请求不为 null

java - 禁用 com.google.gwt.user.datepicker.client.DatePicker 上的上个月和下个月按钮?

java - 在Java中打印60秒倒计时

java - HttpClient JSONData POST 请求以及 PHP 服务器的响应