用xmlNode.childNodes.length取长度,然后循环取节点不懂就查下文档,多试几次就搞定了现在的小孩越来越来懒了

解决方案 »

  1.   

    <script>
    var dom;
    if(window.ActiveXObject){
      dom=new ActiveXObject("microsoft.xmldom");
      dom.onreadystatechange=function(){if(dom.readyState==4)ParseXML(dom);}
      dom.load("data.xml")
    }
    else if(document.implementation&&document.implementation.createDocument){
      dom=document.implementation.createDocument('','',null);
      dom.onload=function(){ParseXML(dom);}
      dom.load("data.xml");
    }
    else alert("浏览器不支持xml!");function ParseXML(dom){
      var lanmu=dom.getElementsByTagName("LanMu");
      var name,url,color;
      for(var i=0;i<lanmu.length;i++){
        document.write("栏目"+(i+1)+"     属性link=<b>"+lanmu[i].getAttribute("link")+"</b><br/>");
        document.write("地区:<b>"+lanmu[i].getElementsByTagName("Name")[0].firstChild.nodeValue+"</b><br>");
        name=lanmu[i].getElementsByTagName("name");
        url=lanmu[i].getElementsByTagName("url");
        color=lanmu[i].getElementsByTagName("color");    
        for(var j=0;j<url.length;j++)
        {
          document.write("姓名:<b>"+name[j].firstChild.nodeValue+"</b><br>")
          document.write("URL:<b>"+url[j].firstChild.nodeValue+"</b><br>")
          document.write("颜色:<b>"+color[j].firstChild.nodeValue+"</b><br>")
          document.write("<br/>");
        }
        document.write("<hr>");
      }
    }
    </script>
      

  2.   

    http://blog.csdn.net/yjinzaghi/archive/2008/04/22/2314962.aspx
      

  3.   

    大侠,首先你在前面定义了“var dom”,然后的js函数function ParseXML(dom)又把dom作为参数,这样是什么意思?是不是有些多余啊?这样的话这个function ParseXML(dom)函数在页面中怎么调用呢?   第二,我想显示的效果是这样的:      [大陆]
           刘亦菲
            张靓颖
            李宇春
         [港台]
           蔡依林
            张韶涵
            徐若瑄多谢大侠!再麻烦一下!
      

  4.   

    不是多余,这个是个函数,你可以加载完后调用这个函数来分析你的xml如果你的变量不是全局时这个就需要了<script>
    var str='<table><tr><td><table ></table></td><td><a id="_l" href="http://sites/Person.aspx?accountname=Domain%5CUser">jim Ben</a>'
         +'<spanclass=\'AAA\'>,<nobr>USER DESIGNER</nobr></span></td></tr></table>';var dom;
    if(window.ActiveXObject){
      dom=new ActiveXObject("microsoft.xmldom");
      dom.onreadystatechange=function(){if(dom.readyState==4)ParseXML(dom);}
      dom.load("data.xml")
    }
    else if(document.implementation&&document.implementation.createDocument){
      dom=document.implementation.createDocument('','',null);
      dom.onload=function(){ParseXML(dom);}
      dom.load("data.xml");
    }
    else alert("浏览器不支持xml!");function ParseXML(dom){
      var lanmu=dom.getElementsByTagName("LanMu");
      var name,url,color;
      for(var i=0;i<lanmu.length;i++){
        //document.write("栏目"+(i+1)+"     属性link=<b>"+lanmu[i].getAttribute("link")+"</b><br/>");
        document.write("<b>"+lanmu[i].getElementsByTagName("Name")[0].firstChild.nodeValue+"</b><br>");
        name=lanmu[i].getElementsByTagName("name");
        url=lanmu[i].getElementsByTagName("url");
        color=lanmu[i].getElementsByTagName("color");    
        for(var j=0;j<url.length;j++)
        {
          document.write("&nbsp;&nbsp;&nbsp;&nbsp;<a href='"+url[j].firstChild.nodeValue+"' style='color:"+color[j].firstChild.nodeValue+"'>"+name[j].firstChild.nodeValue+"</a>")
         // document.write("URL:<b>"+url[j].firstChild.nodeValue+"</b><br>")
          //document.write("颜色:<b>"+color[j].firstChild.nodeValue+"</b><br>")
          document.write("<br/>");
        }
       document.write("<br>");
      }
    }</script>
      

  5.   

    不好意思,我还是没明白你的意思!比如说我现在页面一打开我就想显示xml读出来的结果:      [大陆] 
          刘亦菲 
            张靓颖 
            李宇春 
        [港台] 
          蔡依林 
            张韶涵 
            徐若瑄 我改怎么调用你的js函数呢?
      

  6.   

    而且你定义的var str怎么没有使用过?
      

  7.   

    <body onload="ParseXML(dom)"> 
    这个参数我写什么呢?还有,我打开页面,页面上只显示了[大陆] ,查看源文件,只有:<b>[大陆]</b><br> 
    也就是说: 
    document.write("<b>"+lanmu[i].getElementsByTagName("Name")[0].firstChild.nodeValue+"</b><br>"); 
    以下的都没执行!为什么?
      

  8.   

    ...............................................我彻底无语了,你要先加载xml文件不行就直接把下面的代码直接放进需要在那里显示的html页面里面<script>
    var dom;
    ///==================这段是加载xml文件的,要加载完了才能分析啊===============
    if(window.ActiveXObject){
      dom=new ActiveXObject("microsoft.xmldom");
      dom.onreadystatechange=function(){if(dom.readyState==4)ParseXML(dom);}
      dom.load("data.xml")
    }
    else if(document.implementation&&document.implementation.createDocument){
      dom=document.implementation.createDocument('','',null);
      dom.onload=function(){ParseXML(dom);}
      dom.load("data.xml");
    }
    else alert("浏览器不支持xml!");
    ///=========================================================================
    function ParseXML(dom){
      var lanmu=dom.getElementsByTagName("LanMu");
      var name,url,color;
      for(var i=0;i<lanmu.length;i++){
        document.write("<b>"+lanmu[i].getElementsByTagName("Name")[0].firstChild.nodeValue+"</b><br>");
        name=lanmu[i].getElementsByTagName("name");
        url=lanmu[i].getElementsByTagName("url");
        color=lanmu[i].getElementsByTagName("color");    
        for(var j=0;j<url.length;j++)
        {
          document.write("&nbsp;&nbsp;&nbsp;&nbsp;<a href='"+url[j].firstChild.nodeValue+"' style='color:"+color[j].firstChild.nodeValue+"'>"+name[j].firstChild.nodeValue+"</a>")
          document.write("<br/>");
        }
       document.write("<br>");
      }
    }</script>
      

  9.   

    var files,path,fso,fc,s;
                path=document.getElementById("uQ");             fso = new ActiveXObject("Scripting.FileSystemObject");
                 try{
                     var gf="XML/" + para1 + "/";//"E:\\Apache2.2\\htdocs\\XML\\" + para1 + "\\"
                     files = fso.GetFolder(server.mappath(gf)).Files; //文件夹下的所有文件
                 }catch(e)
                 { alert(e.message);return;}
                 fc = new Enumerator(files); //创建迭代器            for (; !fc.atEnd(); fc.moveNext())  //遍历文件
                {
                    if(fso.GetExtensionName(fc.item())=='xml')//判断文件类型
                    {
                       s = fso.GetFileName(fc.item());  //得到文件路径的文件名
                       path.innerHTML += "<li class=\"oldmag01\"><span><a href=\"#\">" +s+"</a></span> </li>";
                    }
                }[code=JScript][/code]这个里面的fso.GetFolder(server.mappath(gf)).Files; 有什么办法可以获得相对路径啊?
      

  10.   

    fso.GetFolder这个方法好像只认绝对路径,是吗?
      

  11.   

    汗。这样子的话,我很奇怪,如果你做编程这一行,遇到这种问题,你可以好好分析一下。一个xml文件,你想读取,用js怎么读取,上百度。很快就能掌握。读取以后,怎么解析这个xml文件流,不会,去百度,找一下。搞懂以后,整个文件的内容任你宰割。这样一来,你就慢慢学会了解决问题的能力。不然永远是小鸟等着人喂食。长不大的!忠告!
      

  12.   

    FSO不能用网络路径吧?类似这样http://localhost:2721/XML/ahjt/的!