最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 20:36:40
文档

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

javascript生成/解析dom的CDATA类型的字段的代码_javascript技巧:两段demo代码如下(for ie only): //demo1 var xmlDoc = new ActiveXObject(Msxml2.DOMDocument); var root; var CDATASection; xmlDoc.async = false; xmlDoc.loadXML(); root = xmlDoc.docu
推荐度:
导读javascript生成/解析dom的CDATA类型的字段的代码_javascript技巧:两段demo代码如下(for ie only): //demo1 var xmlDoc = new ActiveXObject(Msxml2.DOMDocument); var root; var CDATASection; xmlDoc.async = false; xmlDoc.loadXML(); root = xmlDoc.docu


两段demo代码如下(for ie only):

//demo1
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
var root;
var CDATASection;
xmlDoc.async = false;
xmlDoc.loadXML("");
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;i{
if(root.childNodes[i].nodeType==4)
alert(root.childNodes[i].nodeValue)
}


//demo2
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
xmlDoc.async = false;
xmlDoc.loadXML("");
root = xmlDoc.documentElement;
for(i =0;i{
if(root.childNodes[i].nodeType==4)
alert(root.childNodes[i].nodeValue)
}

//demo3( for firefox)

< HTML >
< HEAD >
< TITLE > 使firefox对xml的处理兼容IE的selectSingleNode selectNodes方法
< 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( " " );

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')] 这种查询方式 " )
}
// -->

< BODY >


//demo4( cross brower)
http://kb.mozillazine.org/XPath

文档

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

javascript生成/解析dom的CDATA类型的字段的代码_javascript技巧:两段demo代码如下(for ie only): //demo1 var xmlDoc = new ActiveXObject(Msxml2.DOMDocument); var root; var CDATASection; xmlDoc.async = false; xmlDoc.loadXML(); root = xmlDoc.docu
推荐度:
标签: ja DOM cdata
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top