IEXML数据岛及遍历DOM树:


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 >

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇