http://msdn.microsoft.com/library/en-us/xmlsdk/html/d051f7c5-e882-42e8-a5b6-d1ce67af275c.asp

解决方案 »

  1.   

    /**
      * 解析XML串
      */
     function parseXMLString(responseRuselt)
     {
        var doc = new ActiveXObject("Msxml2.DOMDocument");
        doc.loadXML(responseRuselt);
        var obj=doc.selectNodes("//rows/row/cell");
        var selectIDsAndNames = "";
        for(var i=0;i<obj.length;i++)
        {
           if(i>0 && (i % 2 == 0))
              selectIDsAndNames += ":";
           else if(i > 0)
              selectIDsAndNames += ",";
              
           selectIDsAndNames += obj[i].text;
        }
        return selectIDsAndNames;
     }
    首先把data_interchange.xml内容读取出来,然后赋给responseRuselt,最后就可以通过obj[i].text读出属性值.要注意:doc.selectNodes("//rows/row/cell");是用来设置节点的.你根据情况修改.这里只有三级节点.
      

  2.   

    SelectNodes 和 SelectSingleNode
      

  3.   

    var arrays = new Array;
    function interchange( id,name,app_date,time_step,trans_step,idx,app_time,cv_value)

      this.id = id;
      this.name=name;  
      this.app_date= app_date;
      this.time_step=time_step;   
      this.trans_step=trans_step;
      this.idx = idx;
      this.app_time=app_time;
      this.cv_value=cv_value;
    }
    function parseXml()
    {
       var doc = new ActiveXObject("Msxml2.DOMDocument"); //("Msxml3.DOMDocument")..;
       doc.loadXML(data_interchange.xml);
       var root=doc.documentElement;
       if( root==null) return;
       var i=0;
        for(var intJ=0;intJ<root.childNodes.length;intJ++)
        {
             var mpNode = root.childNodes[intJ];
             var id= mpNode.attributes[0].text;
             var name= mpNode.attributes[1].text;
             var app_date= mpNode.attributes[2].text;
             var time_step= mpNode.attributes[3].text;
             var trans_step= mpNode.attributes[4].text;          for(var intI=0;intI<mpNode.childNodes.length;intI++)
             {
                 var cvNode = mpNode.childNodes[intI];
                 var idx = cvNode.attributes[0].text;
                 var app_time = cvNode.attributes[1].text;
                 var cv_value = cvNode.text;
                 arrays[i] = new interchange(id,name,app_date,time_step,trans_step,
                               idx,app_time,cv_value);
                 i++;
              }
       }
    }
    function getcvbyid(id,idx)
    {
       for(var j=0;j<arrays.length;j++)
       {
          if(arrays[i].id=id && arrays[i].idx=idx)
          {
             return arrays[i];
              
           }
       }
       return null;
    }var objCV = getcvbyid(xxx,xxx);
      
    以上代码完全将xml转化 javascript 对象数组,并提供一个函数可以随意访问某个对象,相关于以面向对象的方式访问xml数据,这样结构逻辑非常清析,本人一直这样用