FireFox对XML处理兼容IE节点的示例分析

小编给大家分享一下FireFox对XML处理兼容IE节点的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

西湖网站建设公司创新互联建站,西湖网站设计制作,有大型网站制作公司丰富经验。已为西湖上1000家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的西湖做网站的公司定做!

具体代码如下。

<! 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 >

从例子可以看到,IE对xpath的支持还是有限度的。

以上是“FireFox对XML处理兼容IE节点的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!

文章标题:FireFox对XML处理兼容IE节点的示例分析
分享地址:https://www.cdcxhl.com/article6/jgscog.html

成都网站建设公司_创新互联,为您提供域名注册定制开发网站设计公司服务器托管营销型网站建设网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发