如果不是标准的xml编辑器,里面会包含一些回车,换行,空格等特殊字符,多试试看看,是不是包含这些了

解决方案 »

  1.   

    还有件事 BAC是什么结点啊?是不是写错了?
      

  2.   

    BAC是自己定义的,类似于xml的自定义。
      

  3.   

    bac结点在
    <abc>abc</abc>
    这里面没有体现?
    这看不出他是不是hasChildNodes()
      

  4.   

    那是拼写错误,是abc节点.hasChildNodes()为false。我要搞明白的是标准html标签和自定义标签为什么会有这样的区别。
    该怎么解决这个问题。
      

  5.   

    你的这个问题我想有可能是由于没有用标准的xml编辑器造成的
    我以前也遇到过这种问题最好从顶层开始,在看一遍,我觉得是不是你拿abc结点的时候拿错了
    对每一层的结点先看他的childNodes.length
    这里的length可能和你真正的预期结果不同,会比预期结果多,原因是中间有回车换行符
    然后看看哪个是真正想要的,这样一直到abc的那个结点,我想应该不会出现hasChildNodes()为false的情况了
      

  6.   

    谢谢。代码如下:
    ===========================================
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> Get XHTML </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD><BODY>
    <div id="xh">
    <p><b>bbb</b><i>ccc</i><abc>abc</abc></p>
    </div>
    <script language="javascript">
            function getNode(oNode){
                    var cNodes = oNode.childNodes;
                    var len=cNodes.length;
                    for(var i=0;i<len;i++){
                            var cNode = cNodes[i];
                            alert("nodeType:" + cNode.nodeType + "\nnodeName:" + cNode.nodeName + "\nnodeValue:" + cNode.nodeValue + "\nhasChildNodes:" + cNode.hasChildNodes());
                            if (cNode.hasChildNodes())
                                    getNode(cNode);
                    }
            }
    getNode(xh);
    </script>
    </BODY>
    </HTML>