百度空间 | 百度首页 
 
查看文章
 
文本节点害死人,sun的bug更是害死人
2008-11-10 01:09
发现一个奇怪的问题。

JDK默认的dom解析器,getChildNodes不太稳定。

情况是这样的,一个只有一个子节点的节点,再子节点前后有空白文本

刚进入函数体的时候发现,解析的结果事一个节点,出来之后发现异常了,变成了第一个节点是开始被忽略的文本节点。

具体发生问题的点是:

    public DocumentFragment toDocumentFragment(Node node, NodeList nodes) {
        Document doc;
        if (node instanceof Document) {
            doc = (Document) node;
        } else {
            doc = node.getOwnerDocument();
        }
        DocumentFragment frm = doc.createDocumentFragment();
        for (int i = 0; i < nodes.getLength(); i++) {
            Node item = nodes.item(i);
            frm.appendChild(item);//就是这里出问题了!!!
        }
        return frm;
    }


类别:默认分类 | 添加到搜藏 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2008-11-10 15:35 | 回复
是我错了,DOM标准中有明确规定。 当一个节点被添加到其他地方的时候,源节点的需要从父节点删除
 
2
2008-11-12 12:27 | 回复
removeChild也是一样,是影响nodeList对象的,你将for循环从大到小循环就可以了。
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu