加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

IEXML数据岛及遍历DOM树:

发布时间:2020-12-16 05:28:15 所属栏目:百科 来源:网络整理
导读:IE XML数据岛及遍历DOM树 XML数据岛技术是IE浏览器(5.0以上版本)用于绑定和显示XML数据的一种特定方法,它首先将XML文档直接包含于HTML元素或者链接XML文件到HTML元素,然后使表格等HTML元素绑定XML文档元素,从而实现XML数据在HTML页面中的显示。 当IE浏览


IEXML数据岛及遍历DOM树


XML数据岛技术是IE浏览器(5.0以上版本)用于绑定和显示XML数据的一种特定方法,它首先将XML文档直接包含于HTML元素或者链接XML文件到HTML元素,然后使表格等HTML元素绑定XML文档元素,从而实现XML数据在HTML页面中的显示。

当IE浏览器打开包含XML数据岛的HTML页面时,其内置的XML解析器读取并分析XML文档;同时创建一个名为数据源对象(DSO)的ActiveX编程对象,它可以存储或缓存XML数据并提供对这些数据的访问。DSO把XML数据当作记录集(recordset)存储,即记录及其域的集合:XML文档根元素包含一系列类型相同的记录元素,每一个记录元素包含嵌套的记录或相同的域元素集,每个域元素只包含字符数据。因而HTML元素的数据绑定也就只能与对称结构的XML文档一起使用。当XML文档包含很多记录时,可以使用分页功能一次显示一组记录。

下面是一个展示XML数据岛以及遍历此XMLDOM树的实例:

< html >

< head >
< title > 数据岛 </ title >
< script language ="javascript" for ="window" event ="onload" >
<!--
varstr="遍历数据岛XML文档:<br/>非属性节点类型(数字代码),节点名称:节点值[属性节点名值对(数据类型)]<br/>";
vardoc=myxml.XMLDocument;
if(doc.firstChild!=null)
{
c1
=doc.firstChild;
varl=0;
traverse(c1,l);
}

mydiv.innerHTML
+=str;

//IE解析的时候把version="1.0"encoding="UTF-8"既作为XML声明的xml节点名的值,也作为XML声明节点的属性!
functiontraverse(node,level)
{
while(node!=null)
{
varln=level;
for(k=0;k<ln;k++)str+="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
str
+=node.nodeTypeString+"("+node.nodeType+"),&nbsp;"+node.nodeName+":&nbsp;"+node.nodeValue;
if(node.attributes!=null)
{
//IE解析的attributes有问题,已设置node.attributes!=null判断,但仍执行下面注释的两句!
//str+="&nbsp;&nbsp;attribute(2)&nbsp;{";
for(vari=0;i<node.attributes.length;i++)
{
attr
=node.attributes(i);
str
+="&nbsp;["+attr.nodeName+"=&quot;"+attr.nodeValue+"&quot;]";
}

//str+="}";
}

str
+="<br/>";
if(node.childNodes!=null)//node.hasChildNodes()
{
ln
++;
cn
=node.childNodes(0);
traverse(cn,ln);
}

node
=node.nextSibling;
}

}


//-->
</ script ></ head >

< body >
< xml id ="myxml" >
<? xmlversion="1.0"encoding="UTF-8" ?>
< orders >
< order >
< customerid limit ="1000" > 12341 </ customerid >
< status > pending </ status >
< item instock ="Y" itemid ="SA15" >
< name >
SilverShowSaddle,16inch
< tag > sss </ tag >
</ name >
< price > 825.00 </ price >
< qty > 1 </ qty >
</ item >
< item instock ="N" itemid ="C49" >
< name >
< content > PremiumCinch </ content >
< tag > pc </ tag >
</ name >
< price > 49.00 </ price >
< qty > 1 </ qty >
</ item >
</ order >
< order >
< customerid limit ="150" > 251222 </ customerid >
< status > pending </ status >
< item instock ="Y" itemid ="WB78" >
< name >
< content > WinterBlanket(78inch) </ content >
< tag > wb </ tag >
</ name >
< price > 20 </ price >
< qty > 10 </ qty >

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读