javascript生成/解析dom的CDATA类型的字段的代码

中年伟哥

中年伟哥

2016-02-19 09:55

今天给大家分享的是由图老师小编精心为您推荐的javascript生成/解析dom的CDATA类型的字段的代码,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!
两段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
展开更多 50%)
分享

猜你喜欢

javascript生成/解析dom的CDATA类型的字段的代码

Web开发
javascript生成/解析dom的CDATA类型的字段的代码

ASP动态生成的javascript表单验证代码

Web开发
ASP动态生成的javascript表单验证代码

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

javascript语句中的CDATA标签的意义

Web开发
javascript语句中的CDATA标签的意义

SQL SERVER的字段类型

编程语言 网络编程
SQL SERVER的字段类型

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

oracle的long类型字段的应用

编程语言 网络编程
oracle的long类型字段的应用

JavaScript 代码的加入

Web开发
JavaScript 代码的加入

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

win10升级失败0xc1900101-0x30018错误怎么办

win10升级失败0xc1900101-0x30018错误怎么办

win10系统垃圾文件如何清理?

win10系统垃圾文件如何清理?
下拉加载更多内容 ↓