遍历XML数据岛数据
操作XML数据岛数据
操作XML数据岛数据在IE浏览器中,当为XML数据岛创建一个标识符ID的时,实际上就是创建了操作XML数据岛的数据源对象DSO。
此处DSO对象可以看作是一个DOM树模型的根节点,即将XML数据岛作为一个加载到内存中的树而处理。
DSO对象可以根据DOM的树模型结构对XML数据岛进行添加、删除和修改节点,其执行效果会显示在当前HTML页面的数据上面,但不会影响XML数据岛本身的数据改变。
下面创建一个案例,演示使用DSO对象操作XML数据岛数据。
首先创建XM将上述代码保存,名称为Example7.xml。
创建引入XML数据岛的HTML网页,将上述代码保存,名称为Example7.html。
直接双击该文件,会显示如图8-9所示窗口:图8-9 DSO操作XML数据岛单击【显示根节点名称】按钮,会调用JavaScript函数c(),其中代码“dos.doc umentElement.nodeName”表示获取根节点名称,dos为数据源对象,此处为DOM 树模型根节点,documentElement为元素根节点,nodeName表示节点名称属性。
其执行结果如图8-10所示。
图8-10 显示根节点单击【显示第一个子节点名称】,会调用JavaScript函数d()。
该函数中,代码“dos.documentElement.childNodes[0].childNodes[0].nodeName”表示获取第一个子节点名称,childNodes[0]表示元素子节点集合的第一个子节点,第一个childNodes[0]表示根节点(<图书列表>)的子节点(第一个<图书>节点)列表,第二个childNodes[0]表示第一个图书节点的第一个子节点(<标题>)。
如果要获取第一个图书节点的子节点的文本数据,还需要使用firstChild,因为文本数据节点是<标题>节点的子节点。
其执行结果如图8-11所示:图8-11 显示第一个子节点单击【增加节点】按钮,会调用add函数。
XML 数据岛数据分页显示
</tr>
</table>
(6)创建分页表单元素,其代码为:
<body onload="ViewRecords()">
<input type="button" value="第一页" onclick="nput type="button" value="上一页" onclick="PrevPage()">
<input type="button" value="下一页" onclick="NextPage()">
<input type="button" value="最后一页" onclick="LastPage()">
(7)实现JavaScript函数,其代码为:
<script language = "JavaScript">
XML
利用DSO数据源对象,可以分页显示数据岛数据。此时是将DSO数据源对象作为ADO的RecordeSet记录集看待的,可以直接利用RecordeSet记录集提供的nextPage()和previousPage()实现分页显示。其实现步骤如下所示:
(1)分析程序。此程序难点在于理解RecordSet记录集,该程序可以分为两个部分,HTML网页和XML文件。
function ViewRecords()
{
XML简介
XML简介XML可以用来描述数据,重点是‘数据是什么’。
HTML则是用来显示数据,重点是‘如何显示数据’。
在学习XML之前你应该已经知道的知识在你继续之前你应该具有下面一些基础的知识:▪WWW, HTML 和设计网页的基础知识▪网页脚本语言,比如JavaScript 或者VBScript你最好在学习XML之前就了解上面的内容,因为在XML的学习过程中将用到这些知识。
什么是XML?∙XML是E X tensible M arkup L anguage的缩写∙XML是一种类似于HTML的标记语言∙XML是用来描述数据的∙XML的标记不是在XML中预定义的,你必须定义自己的标记∙XML使用文档类型定义(DTD)或者模式(Schema)来描述数据∙XML使用DTD或者Schema后就是自描述的语言XML和HTML的主要区别是什么XML是用来存放数据的XML不是HTML的替代品,XML和HTML是两种不同用途的语言。
XML是被设计用来描述数据的,重点是:什么是数据,如何存放数据。
HTML是被设计用来显示数据的,重点是:显示数据以及如何显示数据更好上面。
HTML是与显示信息相关的, XML则是与描述信息相关的。
XML 什么也不做XML 被设计成什么都不做的。
也许看起来很难理解,但事实上XML确实什么都不做。
XML只是用来组织、存储和发送信息的。
下面的例子是Ordm给Lin的便条,使用的是XML格式:这个便条有信息头,又信息主体,还包括发送人和接收人。
尽管如此,这个XML 文档仍然什么都不做,他只是用XML标记存储信息的文件。
有人已经编写出来发送和接收并且显示这种格式信息的软件。
XML是自由的、可以扩展的XML标记并不是预先规定好的,你必须创造你自己的标记。
在HTML文档中必须使用规则中定义好的标记。
比如:<P><br><a></a>等等。
XML允许你定义自己的标记以及文档结构。
XML 数据岛排序
<script language="JavaScript">
function sort(sortNode,sortOn)
{
var nodes = sortNode.selectNodes("学生");
for (var i = 0; i < nodes.length; i++)
break;
}}
}
}
</script>
(7)运行。直接双击该文件,会显示如图8-2所示窗口,单击【排序】按钮,会显示如图8-3所示窗口:
图8-2排序前数据显示8-3排序后数据显示
XML
将XML文件中的数据以一定顺序显示,可以使用样式表单文件XSL和数据岛技术。其中使用XML数据岛技术显示数据,需要在HTML网页中创建JavaScript代码。本练习目的熟悉XML数据岛的树结构(类似于DOM)。其实现步骤如下所示:
(1)分析程序
(2)实现XML文档,此文档继续使用练习1中的XML文档。
(3)创建HTML网页Example11.html。
(4)在Example11.html页面引入XML文件并绑定到具体元素上,其代码为:
<xml id="tab" src="Example11.xml"></xml>
<table datasrc="#tab" border="1" width="80%">
{
var node = nodes[i];
var rows = node.selectNodes("学生");
mybatis中,mapper.xml中遍历list集合知识点
mybatis中,mapper.xml中遍历list集合知识点<select id="findAll" parameterType="java.util.List" resultType="string">select uid from user where uid in<foreach collection="list" index="index" item="item" open="(" separator="," close=")">#{item.uid,jdbcType=VARCHAR}</foreach>ORDER BY CREATE_DATE DESC</select>--------------------------------------------------------------------相关解释:foreach的主要⽤在构建in 条件中,它可以在sql语句中迭代⼀个集合;1.foreach元素的属性有item, index, collection, open, separator, close;item--->集合中每⼀个元素进⾏迭代的别名;index--->表⽰迭代过程中,每次迭代的位置,open--->该语句以什么开始;separator--->在每次进⾏迭代之间以什么符号作为分隔符;close--->以什么结束,在使⽤foreach的时候最关键的也是容易出错的就是collection属性,该属性是必须指定的,不同情况,属性值不同;有⼀下3中情况:①如果传⼊的是单参数且参数类型是⼀个List的时候,collection属性值为list;②如果传⼊的是单参数且参数类型是⼀个array数组的时候,collection的属性值为array;③如果传⼊的参数是多个的时候,我们就需要把它们封装成⼀个Map了;--------------------------------------------------------------------。
读写XML的四种方法
读写XML的四种方法XML(eXtensible Markup Language)是一种用于表示和传输数据的标记语言。
它具有良好的可读性和扩展性,被广泛应用于Web开发、数据交换和配置文件等领域。
在读写和处理XML数据时,有许多方法可供选择。
本文将介绍四种常见的读写XML的方法:DOM、SAX、JDOM、和XMLStreamReader/XMLStreamWriter。
1. DOM(Document Object Model):DOM是一种基于树形结构的解析器,它将整个XML文档加载到内存中,并将其表示为一个对象树。
在DOM中,每个XML元素都被表示为一个节点(Node),可以通过节点的属性和方法对其进行操作。
读取XML文档时,可以使用DOM解析器将其转换为一个DOM树,然后通过节点的方法访问和修改树结构。
写入XML文档时,可以通过创建和修改节点来构建DOM树,并使用DOM解析器将其保存为XML文档。
使用DOM读取XML文档的基本步骤如下:- 创建一个DocumentBuilderFactory对象。
- 根据DocumentBuilderFactory对象创建一个DocumentBuilder对象。
- 使用DocumentBuilder对象解析XML文档,并返回一个Document对象。
- 通过Document对象的方法遍历和操作XML文档的节点。
使用DOM写入XML文档的基本步骤如下:- 创建一个DocumentBuilderFactory对象。
- 根据DocumentBuilderFactory对象创建一个DocumentBuilder对象。
- 使用DocumentBuilder对象创建一个Document对象。
- 通过Document对象的方法创建和添加元素节点、属性节点等。
- 使用TransformerFactory和Transformer对象将Document对象保存为XML文档。
DOM的优点是易于使用和理解,可以方便地遍历和修改XML文档。
xml文件解析方法
xml文件解析方法XML文件解析方法引言:XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,它具有良好的可读性和灵活性,被广泛应用于数据交换和配置文件等领域。
在处理XML文件时,解析是必不可少的环节。
本文将介绍几种常用的XML文件解析方法,包括DOM、SAX和StAX。
一、DOM解析方法DOM(文档对象模型)是一种将整个XML文件以树形结构加载到内存中的解析方法。
DOM解析器将XML文件解析为一个树状结构,通过遍历节点来获取和操作XML文件中的数据。
DOM解析方法的优点是易于理解和使用,可以随机访问XML文件中的任意节点,但缺点是占用内存较大,不适用于大型XML文件的解析。
1. 创建DOM解析器对象:使用标准的Java API,可以通过DocumentBuilderFactory类来创建DOM解析器对象。
2. 加载XML文件:通过DOM解析器对象的parse()方法加载XML文件,将其转化为一个树形结构。
3. 遍历节点:使用DOM解析器对象提供的方法,如getElementsByTagName()、getChildNodes()等,可以遍历XML文件中的各个节点,获取节点的名称、属性和文本内容等信息。
4. 获取节点数据:通过节点对象提供的方法,如getNodeName()、getTextContent()等,可以获取节点的名称和文本内容。
二、SAX解析方法SAX(简单API for XML)是一种基于事件驱动的XML解析方法。
在SAX解析过程中,解析器顺序读取XML文件,当遇到节点开始、节点结束或节点文本等事件时,会触发相应的回调方法。
相比于DOM 解析方法,SAX解析方法具有内存占用小、解析速度快的优点,但缺点是无法随机访问XML文件中的节点。
1. 创建SAX解析器对象:使用标准的Java API,可以通过SAXParserFactory类来创建SAX解析器对象。
2. 实现事件处理器:自定义一个事件处理器,实现SAX解析器提供的DefaultHandler类,并重写相应的回调方法,如startElement()、endElement()和characters()等。
遍历 XML 文件所有节点的实例代码
遍历XML 文件所有节点的实例代码这个示例演示如何载入一个XML 文件,然后遍历该XML 文件的所有节点,并用Textbox 显示该XML 文件每个节点第一个属性的值。
准备一个XML 文件准备一个XML 文件,内容如下,将其存为C:\menu.xml。
<?xml version="1.0" encoding="UTF-8"?><menu name ="1"><menu name ="1.1"/><menu name ="1.2"><menu name ="1.2.1"/><menu name ="1.2.2"/><menu name ="1.2.3"><menu name ="1.2.3.1"/><menu name ="1.2.3.2"/><menu name ="1.2.3.3"/></menu><menu name ="1.2.4"/></menu><menu name ="1.3"><menu name ="1.3.1"/><menu name ="1.3.2"/></menu><menu name ="1.4"/><menu name ="1.5"/></menu>创建项目(Project) 和添加控件打开Visual Studio 2005。
数据岛访问XML标记属性
<head>
<title>访问XML元素属性值</title>
</head>
<xml id="dos" src="Example5.xml"></xml>
<body>
<center>
<table datasrc="#dos" border="1" width="80%">
<thead>
<tr>
图8-6访问标记属性
<?xml version="1.0" encoding="GB2312"?>
<交通工具列表>
<交通工具名称="东风汽车">
<时速>80公里</时速>
</交通工具>
<交通工具名称="奇瑞轿车">
<时速>100公里</时速>
</交通工具>
</交通工具列表>
将上述代码保存,名称为Example5.xml。创建引入XML数据岛的HTML页面,打开记事本,输入下列代码:
数据岛访问
使用数据岛访问元素属性很简单,可以直接把属性按子元素来处理。例如:
<book isbn="9-001-122-12">
……
</book>
这样,在绑定到HTML表格中时,就可以直接按子元素来处理:
详解PHP使用DOMDocument类遍历_增加_修改_删除XML节点操作
详解PHP使用DOMDocument类遍历_增加_修改_删除XML节点操作DOMDocument类是PHP中用来处理XML文档的类,通过该类可以实现对XML文档的遍历、增加、修改和删除节点的操作。
一、遍历XML节点使用DOMDocument类可以很方便地遍历XML节点,以下是一个遍历XML节点的示例代码:```php// 创建DOMDocument对象$dom = new DOMDocument(;//加载XML文档$dom->load('example.xml');//获取根节点$root = $dom->documentElement;//遍历根节点的所有子节点foreach ($root->childNodes as $node)//判断节点类型为元素节点if ($node->nodeType == XML_ELEMENT_NODE)//输出节点的名称和值echo $node->nodeName . ': ' . $node->nodeValue . PHP_EOL;}```二、增加XML节点使用DOMDocument类可以很方便地增加XML节点,以下是一个增加XML节点的示例代码:```php// 创建DOMDocument对象$dom = new DOMDocument(;//加载XML文档$dom->load('example.xml');//创建节点$newNode = $dom->createElement('book');$attr = $dom->createAttribute('id');$attr->value = '3';$newNode->appendChild($attr);$title = $dom->createElement('title', 'Title 3');$newNode->appendChild($title);$author = $dom->createElement('author', 'Author 3');$newNode->appendChild($author);$root = $dom->documentElement;//添加新节点到根节点$root->appendChild($newNode);//保存XML文档$dom->save('example.xml');```三、修改XML节点使用DOMDocument类可以很方便地修改XML节点,以下是一个修改XML节点的示例代码:```php// 创建DOMDocument对象$dom = new DOMDocument(;//加载XML文档$dom->load('example.xml');//获取根节点$root = $dom->documentElement;// 获取指定id的节点$node = $dom->getElementById('1');$node->getElementsByTagName('title')->item(0)->nodeValue = 'New Title';//保存XML文档$dom->save('example.xml');```四、删除XML节点使用DOMDocument类可以很方便地删除XML节点,以下是一个删除XML节点的示例代码:```php// 创建DOMDocument对象$dom = new DOMDocument(;//加载XML文档$dom->load('example.xml');//获取根节点$root = $dom->documentElement;// 获取指定id的节点$node = $dom->getElementById('1');//删除节点$root->removeChild($node);//保存XML文档$dom->save('example.xml');```以上就是PHP使用DOMDocument类进行XML节点操作的详细说明。
XML数据岛结合AJAX实现Web的异步刷新
麻 烦 。修 改 数 据 岛 中 的数 据 , 面 上 与 之 绑 定 的 H ML元 素 页 T
的值 也 随 之 改 变 。
面 从 Itre 获 取 信 息 _ 访 问 的 动态 页 面信 息 需 要 对数 据库 ne t n l j 。 进 行 更 新 或 查 询 。 统 的 Bs模 式 的 W e 传 , b系统 存 在 一 定 的 不 足 : 是 数 据 的 显示 内 容 与 形 式 没 有 分 离 , 息 处 理效 率 低 ; 一 信 二是采用同步交互过程 。 即客 户 端 向服 务 器 发 出 Hrr 求 , rP请
张 琳 .张 国 平
( 顶 山 学 院 软 件 学院 ,河 南 平 顶 山 平
470 6 0 0)
摘 要 : 据 岛 作 为 HT 数 ML文 档 的 一 种 交互 手 段 , 通 过 特 定 的 标 记 将 X 它 ML元 素 嵌 入 到 H ML页 面 中 , 够 很 好 地 展 T 能
服 务 器 接 收 请 求 并 进 行 处 理 .在 处 理 过 程 中 , 户 一 直 处 于 用 等 待 状 态 , 到 服 务 器 返 回一 个 H ML 页 面 。当用 户 量 不 断 直 T 增 大 时 . 户 在 访 问 服 务 器 时 , 览 器 就 会 等 待 刷 新 整 个 页 用 浏 面 , 页 面 中包 含 的表 单 比较 多 时 , 导 致 页 面 呈 现 “ 当 会 白屏 ” ,
rs l h w ta ,i h e p l ain d v lp n rcs ,u igAJ e h oo yc nrd c h ewokla n eut so h t n teW b a pi t e eo me tpo e s s AX tc n lg a e u e ten t r o d a d s c o n
xml if foreach的用法和例子
XML是一种标记语言,它被广泛应用于数据存储和交换的领域。
在XML中,常常需要对数据进行遍历和处理,这时就需要使用`if`和`foreach`语句来实现对XML数据的操作。
本文将介绍XML中`if`和`foreach`的用法和例子。
一、XML中的`if`语句1. 语法:`if`语句用于条件判断,其语法如下:```xml<if test="条件表达式"><!-- 条件为真时执行的代码块 --></if>```2. 示例:假设有一个XML文件`data.xml`,其内容如下:```xml<students><student><name>张三</name><score>80</score></student><student><name>李四</name><score>60</score></student></students>```现在我们要通过`if`语句判断学生成绩是否及格(成绩大于等于60),并输出不同的信息:```xml<students><foreach select="student"><if test="score >= 60"><pass>true</pass></if><if test="score < 60"><pass>false</pass></if></foreach></students>```二、XML中的`foreach`语句1. 语法:`foreach`语句用于遍历XML中的元素,其语法如下:```xml<foreach select="表达式"><!-- 循环体 --></foreach>```2. 示例:继续以上面的XML文件`data.xml`为例,现在我们要通过`foreach`语句遍历所有学生的信息,并输出他们的成绩:```xml<students><foreach select="student"><name><value-of select="name"/></name><score><value-of select="score"/></score></foreach></students>```以上就是XML中`if`和`foreach`的用法和例子。
Chap 9 使用数据岛显示XML数据
现根据源文档的某个条件来改变输出结果。
XML
HYM
教程
9.1 数据岛的基本概念
XML的数据源对象(Data Source Object ,DSO),又称 “数据岛”(Data Islands),是另外一种显示XML数据的 方式。 DSO的实现机制是将一个或一段XML文档作为一个类似 于数据库的数据源,使用传统的操作数据库的方法,来进行 显示和操作。
9.2 通过表格绑定多个记录
XML
HYM
教程
这里,<table>标记的作用类似于脚本语言中的循环,可
自动显示第二层所有同名的元素,生成的表行数取决于数据岛 的内容。
由于<td>标记本身并不是一个可绑定的HTML标记,所以通
常是通过可绑定的<span>标记绑定到某个子元素。
XML
HYM
教程
9.2.1 使用简单表格显示XML文档
XML
HYM
教程
9.2 通过表格绑定多个记录
<HTML> Ch9-3.htm <HEAD><TITLE> 通过简单表格来显示数据岛数据</TITLE> </HEAD> <BODY> <xml id="xmldata" src=“stu2.xml"></xml> <h2 align="center">信息工程分院学生名单</h2> <table datasrc="#xmldata" border="1" cellpadding="5" align="center"> <thead> <th>姓名</th><th>学号</th><th>性别</th> <th>班级</th><th>出生年月</th> </thead> <tr> <td><span datafld="姓名"></span></td> <td><span datafld="学号"></span></td> <td><span datafld="性别"></span></td> <td><span datafld="班级"></span></td> <td><span datafld="出生年月"></span></td> </tr> </table> </BODY> </HTML>
解析xml格式字符串标签数据的方法
解析xml格式字符串标签数据的方法
XML格式字符串是一种常见的数据格式,它由标签和标签中的数据组成。
解析XML格式字符串中的标签数据可以帮助我们更方便地获取和处理数据。
以下是解析XML格式字符串标签数据的方法:
1. 使用DOM解析器:DOM解析器是一种常用的解析XML格式字符串的方法。
它可以将整个XML文档加载到内存中,然后通过对DOM树进行操作来获取标签数据。
具体步骤是:使用DOM解析器加载XML文件,然后通过对DOM树进行遍历,找到所需的标签并获取其中的数据。
2. 使用SAX解析器:SAX解析器是一种基于事件驱动的解析XML格式字符串的方法。
它可以在解析XML文件的过程中触发一系列事件,程序员可以根据这些事件来获取标签数据。
具体步骤是:使用SAX解析器解析XML文件,然后在遇到标签时触发startElement事件,在标签结束时触发endElement事件,程序员可以在这些事件中获取标签数据。
3. 使用XPath:XPath是一种用于在XML文档中定位节点的语言,它可以帮助我们更方便地获取标签数据。
具体步骤是:使用XPath解析器加载XML文件,然后使用XPath表达式在XML文档中定位所需的标签,最后获取标签中的数据。
以上是解析XML格式字符串标签数据的一些常用方法,程序员可以根据自己的需求选择适合的方法来获取和处理数据。
一种通用XML数据岛动态生成和数据绑定方法
一种通用XML数据岛动态生成和数据绑定方法作者:张文学来源:《现代电子技术》2009年第02期摘要:为了减少网页访问时网络的负载,采用XML数据岛技术实现网页中数据的处理。
介绍XML数据岛的概念,并讨论Web页中XML数据岛生成和绑定的机制,给出一种使用ASP和ADO技术由数据库动态生成XML数据岛,并动态绑定数据的通用方法,可应用于各种基于Web的应用系统,提高开发效率。
关键词:XML数据岛;动态生成;数据绑定;Web程序设计;数据库中图分类号:TP393文献标识码:B文章编号:1004 373X(2009)02 120 03Universal Method of XML Data Island Dynamic Generation and Data BindingZHANG Wenxue(Luoyang Institute of Science and Technology,Luoyang,471023,China)Abstract:To reduce the network load when visiting the Web page,using XML data island technology to process XML data in Web.This article introduces the concept of XML dataisland,discusses the mechanism of XML data island generation and binding in Web Page,gives the universal method of XML data island generated from database with ASP and ADO,and binds XML data dynamically,applicable for various applications based on Web.It improves the efficiency of Web development.Keywords:XML data island;dynamic generation;XML data binding;Web programdesign;database0 引言XML(eXtensible Markup Language)语言是由W3C定义的一种元标记语言,具有较强的数据表示能力,但显示能力不如HTML。
数据岛访问XML元素内容
数据岛访问XML元素内容在HTML文档中嵌入数据岛之后,就可以将XML数据岛与HTML元素绑定在一起。
每一个即数据岛都有唯一的ID号。
其过程是首先将HTML元素中的datasrc 属性设置为相应的id,就可以把HTML元素和数据岛联系在一起。
然后再通过设置datafld属性值,来确定所提取的XML元素。
注意:并非所有的HTML元素都能与XML数据岛绑定。
目前,支持这种DS O绑定机制的元素如下:A、APPLET、BUTTON、DIV、FRAME、IFRAME、IMG、INPUT(此处类型是:CHECKBOX、HIDDEN、LABEL、PASSWORD、RADIO和TEXT)、LABEL、MARQUEE、SELECT、SPAN、TABLE和TEXTAREA。
利用这些标记可以显示指定的数据,并在绑定的时候显示指定的样式。
绑定的方式按照HTML元素的性质可以分为两种:单值对象和表格对象。
单值对象的数据绑定需要在HTML元素中设置DA TASRC属性和DA TAFLD属性。
DATASRC属性是区分XML数据岛对象的唯一标识,并且必须加上前缀“#”,DA TAFLD属性则标识了数据岛中的元素对象。
表格对象,主要是与HTML中的<TABLE>标签绑定。
一般地,可以借助DSO等ActiveX控件更方便、有效地处理表格数据。
1.单值对象绑定单值对象绑定时,只能显示一条记录。
如果多个HTML元素都绑定同一个XM L标记,此时可能会出现重复现象。
现在创建一个案例,演示单值对象的绑定。
首先创建XML文档,打开记事本,输入下列代码:将上述代码保存,名称为Example4.xml。
创建绑定XML文档的HTML网页,将上述代码保存,名称为Example4.html。
直接双击该文件,会显示如图8-4所示窗口:图8-4 单值对象绑定从程序执行结果可以看出,第一个姓名标记内容被连续的提取了两次。
究其原因,HTML页面把嵌入的XML数据岛作为一个记录集Recordset来看待,类似于数据库中形成的记录集。
XML数据岛
XML数据岛,数据绑定1、XML的局限性目前,许多Web网站的内容数据都存放在数据库或数据文件中。
对于Web程序开发人员来说,如果要想把有用的信息从数据库中提取出来,传统的方法是在服务器端编写脚本程序(如VBScript、JavaScript、CGI、ASP、Perl等等),通过对数据库执行SQL查询得到相关记录,然后把查询结果组织成HTML页面返回给客户端,用户使用浏览器观察最终结果。
为了提高系统服务的灵活性、可扩展性,使服务对象范围更广,许多商业网站都尽可能地把商务规则、原始数据和表现形式当做相互独立的服务分别提供。
HTML那种蕴数据于显示之中的方式显然不合乎这种需求。
因此,把原始数据存放在XML文档中,使用样式单文件显示内容是XML技术适合于电子商务的优势所在。
但从本质上来说,XSL技术不是面向数据显示的,它是一种格式转换技术,在显示手段和方式上都远不及HTML那样丰富。
对编程人员来说,一种较为理想的方案是把HTML和XML两种技术相结合,优势互补,使真正的原始数据在能够保持本来意义和结构的同时,还能充分利用HTML那千变万化的显示技巧。
XML数据岛就是这种技术融合的产物,它使用<XML>标签把XML数据直接嵌入到HTML 页面中,从而实现了二者的优势互补。
2、IE中数据岛的处理方式为了能够处理这种内嵌XML代码的HTML页面,Internet Explorer 4.0(以下简称IE 4.0)引入了DSO(Data Source Objects,数据源对象)技术,用Java Applet实现。
例如:<APPLET CODE=“com.ms.xml.dso.XMLDSO.class”ID=“xmldso” WIDTH=0 HEIGHT=0MAYSCRIPT=TRUE><PARAM NAME=“URL”VALUE=“myXML.xml”></APPLET>上述例子中,CODE属性指明了DSO Java小程序,MAYSCRIPT属性保证用户端脚本能够处理数据对象,PARAM标签指明了XML文档的位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
遍历XML数据岛数据
我们知道,通过数据源对象DSO可以对数据岛节点进行显示、查询、修改、删除和添加等操作,这些操作的依据是建立在树模型的基础之上的。
除此之外,DS O还可以把XML数据岛作为ADO记录集进行处理,这样做的好处是可以利用AD O提供的各种方法对数据源进行访问,尤其是当把数据岛与类似SPAN、DIV和IN PUT等HTML元素绑定时。
通常这些元素显示的是记录集的首条记录,要想对记录集进行遍历浏览,一个是使用前面我们讲到的表格对象绑定,另外一个是可以使用ADO的方法结合脚本程序完成相应的浏览数据的功能。
比如创建一个按钮响应函数,只要用户点击“Next”按钮,就可以逐条浏览相应的记录。
除了显示记录数据之外,脚本程序还可以对记录集进行快速查询、排序、编辑等操作。
但要指出的是,虽然ADO技术中提供了类似SortColumn和SortAscendin g等方法对XML数据进行排序,但是效果不如XSL中的排序操作,所以建议大家充分利用XSL技术来实现这部分功能。
当DSO数据源对象作为一个记录集对象来看待的时候,该记录集对象RecordS et具有下面几个常用的属性和方法,如表8-1所示:
现在创建一个案例,使用上述方法和属性遍历XML数据岛数据。
首先创建X
将上述代码保存,名称为Example8.xml。
创建引入XML数据岛的HTML页面,
将上述代码保存,名称为Example8.html。
直接双击该文件,会显示如图8-15所示窗口:
图8-15 遍历XML数据岛数据
在该案例中,首先引入XML文件Example8,即创建数据岛对象dso。
当单击按钮时,会调用相应的JavaScript方法显示数据。
在JavaScript脚本程序中,移动到第一条记录使用moveFirst()方法,向下移动一条使用moveNext()方法,移动到最后一条使用moveLast()方法,向上移动一条记录使用movePrevious()方法。
在移动记
录的时候,应注意记录的开始位置和末尾。