《使用DSO显示XML文档.ppt》由会员分享,可在线阅读,更多相关《使用DSO显示XML文档.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、使用DSO显示XML文档 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望8.1 DSO8.1 DSO简介简介8.1.1 DSO基本概念基本概念与与HTML文档绑定的文档绑定的XML数据源对象简称数据源对象简称为为DSO,通常也称为嵌入,通常也称为嵌入HTML文档中的文档中的XML数据岛。数据岛。使用使用DSO,借助,借助HTML网页来显示网页来显示XML文文档内容,既能保持档内容,既能保持XML文档数据与其显示文档数据与其显示格式分离的特点,又具备格式分离的特点,
2、又具备HTML网页的丰网页的丰富显示格式。富显示格式。利用利用DSO技术显示技术显示XML文档的机制是,把链接文档的机制是,把链接到到HTML网页中的一个网页中的一个XML文档或一段文档或一段XML数数据当作一个类似于数据库的记录集(据当作一个类似于数据库的记录集(Recordset)对象,然后使用与数据库类似的操作方法来显示对象,然后使用与数据库类似的操作方法来显示和浏览被链接的和浏览被链接的XML文档的内容。文档的内容。采用采用DSO技术,首先需要进行数据绑定,即将技术,首先需要进行数据绑定,即将XML文档数据绑定到文档数据绑定到HTML文档,然后再将特文档,然后再将特定的定的XML元素链
3、接到元素链接到SPAN或或TABLE等标准的等标准的HTML元素,这些元素,这些HTML元素就会自动显示它们元素就会自动显示它们所绑定的所绑定的XML元素内容。元素内容。使用使用DSO技术来显示技术来显示XML文档数据的两个文档数据的两个主要步骤:主要步骤:(1)把要显示的)把要显示的XML文档绑定到一个文档绑定到一个HTML文档中文档中。这个步骤是通过在。这个步骤是通过在HTML文档中添加一个名为文档中添加一个名为XML的特定元素来实的特定元素来实现的。现的。(2)把)把XML文档中的元素与文档中的元素与HTML文档文档中特定的元素绑定中特定的元素绑定。示例示例:mingzhu.dtd:mi
4、ngzhu.dtd三国演义三国演义罗贯中罗贯中文艺出版社文艺出版社0-765-58007-880红楼梦红楼梦曹雪芹曹雪芹三秦出版社三秦出版社0-765-58007-922mingzhu.htmlmingzhu.html数据绑定数据绑定数据绑定实例数据绑定实例书名书名类别类别书号书号作者作者出版社出版社定价定价数量数量余量余量8.1.2 XML文档绑定到文档绑定到HTML网页网页被邦定到被邦定到HTML网页的网页的XML文档数据将成文档数据将成为一个数据源对象,也被称为数据岛。可为一个数据源对象,也被称为数据岛。可以使用两种不同的数据岛形式,即:外部以使用两种不同的数据岛形式,即:外部数据岛和内
5、部数据岛。数据岛和内部数据岛。1内部数据岛内部数据岛内部数据岛是将内部数据岛是将XML文档的全部内容放在文档的全部内容放在HTML文档中特定的文档中特定的XML元素的起始标记与结元素的起始标记与结束标记之间,并在束标记之间,并在XML起始标记中给出这个数据起始标记中给出这个数据岛的岛的ID标识。标识。2外部数据岛外部数据岛外部数据岛是在名为外部数据岛是在名为XML的的HTML元素中仅包元素中仅包含所需绑定的含所需绑定的XML文档的文档的URL及其及其ID标识。标识。内部数据岛示例:内部数据岛示例:将将mingzhu.xml的内容直接写到的内容直接写到mingzhu.html文件当中。文件当中。
6、外部数据岛示例:外部数据岛示例:login.xmllogin.xml张朝昆张朝昆123456Login.htmlLogin.html登录登录用户登录用户登录名称:名称:密码:密码:8.1.3 XML元素绑定到元素绑定到HTML元素元素第一种方法是将全部第一种方法是将全部XML元素绑定到元素绑定到HTML文档的文档的TABLE元素元素,使得,使得HTML网页中的表格能够自动显示网页中的表格能够自动显示XML文档的记文档的记录集合。此时应在录集合。此时应在标记中添加标记中添加DATASRC属性,并将一个自定义的数据属性,并将一个自定义的数据源对象名称(数据岛标识符)作为其属性源对象名称(数据岛标识
7、符)作为其属性值。值。如之前的例子:如之前的例子:mingzhu.html第二种方法是将指定的第二种方法是将指定的XML元素绑定到元素绑定到HTML文档的其他特定元素,例如绑定到文档的其他特定元素,例如绑定到SPAN、DIV、BUTTON等元素。此时在等元素。此时在标记中除了标记中除了应添加应添加DATASRC属性之外,还应添加属性之外,还应添加DATAFLD属性来指定所绑定的属性来指定所绑定的XML文档中的某文档中的某个字段。采用此种方法一次只能显示一条记录或个字段。采用此种方法一次只能显示一条记录或记录中的一个字段。记录中的一个字段。并不是所有的并不是所有的HTML元素都可以与元素都可以与
8、XML元素绑元素绑定。定。8.2 8.2 使用使用DSODSO显示记录显示记录8.2.1 使用使用DSO显示单一记录显示单一记录若将若将XML文档绑定到文档绑定到HTML网页文档之后,再网页文档之后,再使用使用SPAN、DIV、BUTTON 等等HTML元素绑定元素绑定到个别的到个别的XML字段,结果这些字段,结果这些HTML元素就会元素就会自动显示所绑定的自动显示所绑定的XML字段的内容。使用这种方字段的内容。使用这种方法来显示所绑定的法来显示所绑定的XML文档时,通常一次只能显文档时,通常一次只能显示一条记录,所以被绑定的示一条记录,所以被绑定的XML文档都相当简单。文档都相当简单。未绑定
9、未绑定tabletable的效果,仍使用的效果,仍使用mingzhu.xmlmingzhu.xmlDSO单值绑定单值绑定四大名著四大名著效果:效果:8.2.2 使用简单表格显示使用简单表格显示XML记录记录将将XML文档作为数据源对象并绑定到文档作为数据源对象并绑定到HTML文档的文档的TABLE元素之后,元素之后,XML文文档中的每一个记录的数据都会被分别显示档中的每一个记录的数据都会被分别显示在在HTML网页的不同表格行中,而网页的不同表格行中,而XML记记录元素中的每一个字段数据则会被分别显录元素中的每一个字段数据则会被分别显示于不同的表格栏中。示于不同的表格栏中。示例参见示例参见min
10、gzhu.html8.2.3 8.2.3 使用使用DSODSO显示元素属性显示元素属性对于对于XML文档中含有属性的记录元素,在文档中含有属性的记录元素,在使用使用DSO方式进行处理时,只需将该元素方式进行处理时,只需将该元素的属性作为记录的一个特定字段来处理即的属性作为记录的一个特定字段来处理即可。因此就可以利用普通的数据绑定技巧可。因此就可以利用普通的数据绑定技巧来存取元素属性的值。来存取元素属性的值。8.3 DSO8.3 DSO数据源对象数据源对象将将XML文档与文档与HTML文档绑定之后,在内存中文档绑定之后,在内存中生成的记录集合是一个属于生成的记录集合是一个属于DSO的的recor
11、dset对象。对象。该对象提供了一组符合该对象提供了一组符合Microsoft 的的ADO标准数标准数据访问技术的方法和属性,因而可以通过据访问技术的方法和属性,因而可以通过script编程调用这些方法和属性来对记录集进行访问和编程调用这些方法和属性来对记录集进行访问和处理。处理。可以根据需要调用可以根据需要调用recordset对象的任何一个方法对象的任何一个方法来撰写有关的来撰写有关的script程序。调用这些方法最简单程序。调用这些方法最简单的方式就是在的方式就是在HTML文档中通过将某个方法直接文档中通过将某个方法直接指定到指定到BUTTON元素的元素的ONCLICK属性中。属性中。8
12、.3.1 DSO与与javascript的使用的使用张三张三同学同学031112345678李四李四朋友朋友031187654321contacts.htmlcontacts.html通信录通信录function view()alert(dso.xml);名称名称联系方式联系方式8.3.2 操作操作DSO记录:记录:tushu.xmlXML基础教程与实验指导基础教程与实验指导孙晓非孙晓非38XML入门经典入门经典David Hunter118XML高级编程高级编程Bill Evjen98XML案例解析教程案例解析教程Mitch Amiano36XML开发典型应用开发典型应用张朝明张朝明65tu
13、shu.htmltushu.html图书列表图书列表function view()alert(dso.documentElement.nodeName);function viewFirst()alert(dso.documentElement.childNodes0.childNodes0.nodeName);alert(dso.documentElement.childNodes0.childNodes0.firstChild.nodeValue);function add()var nodeBook=dso.createElement(图书图书);var nodeTitle=dso.cr
14、eateElement(标题标题);nodeTitle.appendChild(dso.createTextNode(XML基础教程基础教程);var nodeAuthor=dso.createElement(作者作者);nodeAuthor.appendChild(dso.createTextNode(耿祥义耿祥义);var nodePrice=dso.createElement(价格价格);nodePrice.appendChild(dso.createTextNode(21);nodeBook.appendChild(nodeTitle);nodeBook.appendChild(nod
15、eAuthor);nodeBook.appendChild(nodePrice);dso.documentElement.appendChild(nodeBook);function del()dso.documentElement.removeChild(dso.documentElement.childNodes0);function modi()dso.documentElement.childNodes0.childNodes0.firstChild.text=新图书名称新图书名称;图书标题图书标题图书作者图书作者图书价格图书价格效果:效果:8.3.3 遍历遍历XML数据岛数据数据岛数
16、据图书遍历图书遍历function firstrec()dso.recordset.moveFirst();function nxtrec()if(!dso.recordset.EOF)dso.recordset.moveNext();if(dso.recordset.EOF)dso.recordset.movelast();function prevrec()if(!dso.recordset.BOF)dso.recordset.movePrevious();if(dso.recordset.BOF)dso.recordset.moveFirst();function lastrec()ds
17、o.recordset.movelast();图书信息图书信息图书标题:图书标题:图书作者:图书作者:图书价格:图书价格:第一条记录第一条记录上一条记录上一条记录下一条记录下一条记录最后一条记录最后一条记录效果:效果:8.3.4 分页显示分页显示DSO数据数据要实现被绑定的要实现被绑定的XML文档中的众多记录用分页的文档中的众多记录用分页的表格来显示,需执行下列步骤:表格来显示,需执行下列步骤:(1)将被绑定的)将被绑定的TABLE 元素的元素的DATAPAGESIZE 属性设定成希望每一页显示的属性设定成希望每一页显示的记录个数。记录个数。(2)为被绑定的)为被绑定的TABLE 元素的元素的
18、ID 属性指定一属性指定一个唯一的识别代号。个唯一的识别代号。(3)要实现在各个表格页之间翻页浏览,可使)要实现在各个表格页之间翻页浏览,可使用脚本程序调用用脚本程序调用DSO提供的用于控制分页显示的提供的用于控制分页显示的方法。方法。图书列表图书列表function ViewBooks()books.dataPageSize=items.value;books.firstPage();function FirstPage()books.firstPage();function PrevPage()books.previousPage();function NextPage()books.ne
19、xtPage();function LastPage()books.lastPage();分页显示数据分页显示数据请输入一页中要查看的记录数:请输入一页中要查看的记录数:图书标题图书标题图书作者图书作者图书价格图书价格效果:效果:8.4 DSO8.4 DSO与与xslxslgoods.xml:联想笔记本电脑联想笔记本电脑4999元元TCL液晶电视液晶电视5682元元海尔洗衣机海尔洗衣机2866元元goods1.xsltgoods1.xslt样式样式1goods2.xsltgoods2.xslt样式样式2物品名称物品名称物品价格物品价格goods3.xsltgoods3.xslt样式样式3(商品
20、行情:涨价商品行情:涨价)(商品行情:降价商品行情:降价)goods.htmlgoods.html样式切换样式切换function load1()var xmlDso=dso.XMLDocument;var xslDso=Stylesheet1.XMLDocument;divResults.innerHTML=xmlDso.transformNode(xslDso);function load2()var xmlDso=dso.XMLDocument;var xslDso=Stylesheet2.XMLDocument;divResults.innerHTML=xmlDso.transform
21、Node(xslDso);function load3()var xmlDso=dso.XMLDocument;var xslDso=Stylesheet3.XMLDocument;divResults.innerHTML=xmlDso.transformNode(xslDso);,效果效果样式样式1 1效果效果样式样式2 2效果效果样式样式3 38.5 8.5 使用使用DSODSO显示图像元素显示图像元素使用使用DSO技术,还可以把技术,还可以把XML文档元素绑文档元素绑定到除定到除TABLE和和SPAN之外的其他之外的其他HTML元素,以实现特定元素,以实现特定XML数据的显示功能。数据的显示功能。这些这些HTML元素包括元素包括DIV、BUTTON、IMG等。等。如果将如果将XML文档的图像元素绑定到文档的图像元素绑定到HTML的的IMG元素,即可方便地实现在网页中显元素,即可方便地实现在网页中显示出对应的图像。示出对应的图像。img.xml(img.xml(部分程序部分程序)img/1.jpg动物动物img.html(img.html(部分程序部分程序)第一张图片第一张图片上一张图片上一张图片下一张图片下一张图片最后一张图片最后一张图片