【 tulaoshi.com - Web开发 】
                             
                            两段demo代码如下(for ie only): script type="text/javascript"   
//demo1 
var  xmlDoc  =  new  ActiveXObject("Msxml2.DOMDocument");   
var  root;   
var  CDATASection;   
xmlDoc.async  =  false;   
xmlDoc.loadXML("a/");   
root  =  xmlDoc.documentElement;   
CDATASection  =  xmlDoc.createCDATASection("Hello  World!");   
root.appendChild(CDATASection);   
b=xmlDoc.createElement("Test")   
b.text="hahahahaha"   
root.appendChild(b);   
alert(root.xml);     
for(i  =0;iroot.childNodes.length;i++)   
{   
if(root.childNodes[i].nodeType==4)   
alert(root.childNodes[i].nodeValue)   
}   
/script 
script type="text/javascript"   
//demo2 
var  xmlDoc  =  new  ActiveXObject("Msxml2.DOMDocument");    
xmlDoc.async  =  false;   
xmlDoc.loadXML("a![CDATA[aaaaaaaaaaaaaaaaaaaaa]]/a");   
root  =  xmlDoc.documentElement;    
for(i  =0;iroot.childNodes.length;i++)   
{   
if(root.childNodes[i].nodeType==4)   
alert(root.childNodes[i].nodeValue)   
}   
/script 
//demo3( for firefox) ! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"   
 HTML   
 HEAD   
 TITLE   使firefox对xml的处理兼容IE的selectSingleNode selectNodes方法  / TITLE   
 META  NAME ="Author"  CONTENT ="emu"   
 META  NAME ="Keywords"  CONTENT ="firefox IE selectSingleNode selectNodes"   
 META  NAME ="Description"  CONTENT ="使firefox可以支持selectSingleNode selectNodes方法"   
 SCRIPT  LANGUAGE ="JavaScript"   
!--  
var  isIE  =   !! document.all; 
function  parseXML(st){ 
     if (isIE){ 
         var  result  =   new  ActiveXObject( " microsoft.XMLDOM " ); 
        result.loadXML(st); 
    } else { 
         var  parser  =   new  DOMParser(); 
         var  result  =  parser.parseFromString(st,  " text/xml " ); 
    } 
     return  result; 
} 
if ( ! isIE){ 
     var  ex; 
    XMLDocument.prototype.__proto__.__defineGetter__( " xml " ,  function (){ 
         try { 
             return   new  XMLSerializer().serializeToString( this ); 
        } catch (ex){ 
             var  d  =  document.createElement( " div " ); 
            d.appendChild( this .cloneNode( true )); 
             return  d.innerHTML; 
        } 
    }); 
    Element.prototype.__proto__.__defineGetter__( " xml " ,  function (){ 
         try { 
             return   new  XMLSerializer().serializeToString( this ); 
        } catch (ex){ 
             var  d  =  document.createElement( " div " ); 
            d.appendChild( this .cloneNode( true )); 
             return  d.innerHTML; 
        } 
    }); 
    XMLDocument.prototype.__proto__.__defineGetter__( " text " ,  function (){ 
         return   this .firstChild.textContent 
    }); 
    Element.prototype.__proto__.__defineGetter__( " text " ,  function (){ 
         return   this .textContent 
    }); 
    XMLDocument.prototype.selectSingleNode = Element.prototype.selectSingleNode = function (xpath){ 
         var  x = this .selectNodes(xpath) 
         if ( ! x  ||  x.length  1 ) return   null ; 
         return  x[ 0 ]; 
    } 
    XMLDocument.prototype.selectNodes = Element.prototype.selectNodes = function (xpath){ 
         var  xpe  =   new  XPathEvaluator(); 
         var  nsResolver  =  xpe.createNSResolver( this .ownerDocument  ==   null   ?  
             this .documentElement :  this .ownerDocument.documentElement); 
         var  result  =  xpe.evaluate(xpath,  this , nsResolver,  0 ,  null ); 
         var  found  =  []; 
         var  res; 
         while  (res  =  result.iterateNext()) 
            found.push(res); 
         return  found; 
    } 
} 
var  x  =  parseXML( " people  person first-name= " eric "  middle-initial= " H "  last-name= " jung "     address street= " 321  south st "  city= " denver "  state= " co "  country= " usa " /    address street= " 123  main st "  city= " arlington "  state= " ma "  country= " usa " /  /person  person first-name= " jed "  last-name= " brown "     address street= " 321  north st "  city= " atlanta "  state= " ga "  country= " usa " /    address street= " 123  west st "  city= " seattle "  state= " wa "  country= " usa " /    address street= " 321  south avenue "  city= " denver "  state= " co "  country= " usa " /  /person/people " ); 
alert( " 搜索所有人的姓氏(last-name) " ) 
var  results  =  x.selectNodes( " //person/@last-name " ); 
for  ( var  i = 0 ; i  results.length;i ++ ) 
  alert( " Person # "   +  i  +   "  has the last name  "   +  results[i].nodeValue); 
alert( " 搜索第二个人 " ); 
//  IE是以0为下标基数的,而不是1  
if ( ! document.all) 
    results  =  x.selectSingleNode( " /people/person[2] " ); 
else  
    results  =  x.selectSingleNode( " /people/person[1] " ); 
alert(results.xml) 
alert( " 获得住址在donver街上的人 " ); 
results  =  x.selectNodes( " //person[address/@city='denver'] " ); 
for  ( var  i = 0 ; i  results.length;i ++ )alert(results[i].xml) 
if ( ! document.all){ 
     //  获得所有街名中带south的地址  
    results  =  x.selectNodes( " //address[contains(@street, 'south')] " ); 
    alert(results[ 0 ].xml); 
} else { 
    alert( " IE不支持 //address[contains(@street, 'south')] 这种查询方式 " ) 
} 
// --  
/ SCRIPT   
/ HEAD   
 BODY   
/ BODY   
/ HTML   
//demo4( cross brower) 
http://kb.mozillazine.org/XPath