程序说明:1.参数介绍:node是经过Dom解析后的HTML页面里的一个节点;
2.函数预期实现任务:向上递归查找node的父节点,如果父节点不是body,则一直递归;直到父节点是body时,递归才停止;
接着删除node前面的所有兄弟节点,直到node前面再没有兄弟节点为止,然后跳出该函数。 3.目前存在问题:程序在碰到某些页面时,会在执行一轮while循环后,突然跳回到try语句那一行接着往下执行,这样就会导致异常。
请大家帮忙看看是哪里出问题了。谢谢!
以下是程序代码:
行号 public void removeNodeTillParent(Node node)
772 {
773 Node pnode = node.getParentNode();
774 String pname = pnode.getNodeName();
775 if (pname.equalsIgnoreCase("body"))
776 {
778 System.out.print("\nthe node-node-node is: " + node);
779 }else{
780 removeNodeTillParent(pnode);
781 }782 try{
783 node = node.getPreviousSibling();
784 while ((node.getPreviousSibling()!= node)&& (node.getPreviousSibling() != null))
785 {
786 pnode.removeChild(node.getPreviousSibling());
787 }
788 }catch(Exception e) {
789 e.printStackTrace();
790 }
791 } 附异常信息:
java.lang.NullPointerException
Analyzer.removeNodeTillParent(Analyzer.java:784)
Analyzer.removeNodeTillParent(Analyzer.java:779)
Analyzer.removeNodeTillParent(Analyzer.java:779)
Analyzer.removeNodeTillParent(Analyzer.java:779)
Analyzer.removeNodeTillParent(Analyzer.java:779)
2.函数预期实现任务:向上递归查找node的父节点,如果父节点不是body,则一直递归;直到父节点是body时,递归才停止;
接着删除node前面的所有兄弟节点,直到node前面再没有兄弟节点为止,然后跳出该函数。 3.目前存在问题:程序在碰到某些页面时,会在执行一轮while循环后,突然跳回到try语句那一行接着往下执行,这样就会导致异常。
请大家帮忙看看是哪里出问题了。谢谢!
以下是程序代码:
行号 public void removeNodeTillParent(Node node)
772 {
773 Node pnode = node.getParentNode();
774 String pname = pnode.getNodeName();
775 if (pname.equalsIgnoreCase("body"))
776 {
778 System.out.print("\nthe node-node-node is: " + node);
779 }else{
780 removeNodeTillParent(pnode);
781 }782 try{
783 node = node.getPreviousSibling();
784 while ((node.getPreviousSibling()!= node)&& (node.getPreviousSibling() != null))
785 {
786 pnode.removeChild(node.getPreviousSibling());
787 }
788 }catch(Exception e) {
789 e.printStackTrace();
790 }
791 } 附异常信息:
java.lang.NullPointerException
Analyzer.removeNodeTillParent(Analyzer.java:784)
Analyzer.removeNodeTillParent(Analyzer.java:779)
Analyzer.removeNodeTillParent(Analyzer.java:779)
Analyzer.removeNodeTillParent(Analyzer.java:779)
Analyzer.removeNodeTillParent(Analyzer.java:779)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货