大家好啊,帮我看看这段程序的逻辑有什么问题?

lenovocn 2007-11-02 06:07:43
程序说明: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)
...全文
52 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lenovocn 2007-11-28
  • 打赏
  • 举报
回复
呵呵,发现问题所在了。是那段递归和循环的问题
FredWorks 2007-11-03
  • 打赏
  • 举报
回复
不是有插入源代码功能么?为什么不用呢?
lenovocn 2007-11-02
  • 打赏
  • 举报
回复
呵呵,发布前简单排了一下版,想不到出来全乱来。大家凑合着看看

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧