《XML案例教程》课件第8章_第1页
《XML案例教程》课件第8章_第2页
《XML案例教程》课件第8章_第3页
《XML案例教程》课件第8章_第4页
《XML案例教程》课件第8章_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章XML与数据岛8.1数据岛概述8.2数据岛的使用8.3XML数据与HTML元素绑定8.4XML数据记录绑定8.5使用表格绑定显示数据岛8.6显示数据岛中的XML元素属性8.7综合实例8.8本章小结习题8

8.1数 据 岛 概 述

XML的数据源对象(XMLDataSourceObject,XMLDSO)又称数据岛(DataIslands)。数据岛本质上是HTML标记,使用该标记可以在HTML文档中直接嵌入XML数据,或者使用引用方式将外部XML文档加载到HTML文档中。微软从IE5开始将该项技术引入到浏览器中,可以通过XML标签轻松将XML数据源插入到HTML文档中。使用数据岛很容易将XML数据和HTML元素进行绑定,免去了用手工把数据填充到HTML中的麻烦。如果修改数据岛中的数据,页面上与之绑定的HTML元素的值也随之改变。

8.2数据岛的使用

XML数据岛的实现方法是在HTML文档中使用<XML>标签。<XML>元素标记数据岛的开始,它的id属性提供了一个可以用来引用数据岛的名称。XML数据岛的常用属性和事件如表8-1和表8-2所示。表8-1XML数据岛常用属性表8-2XML数据岛常用事件

XML数据岛代码的嵌入方式有两种:直接嵌入和外部引用。

直接嵌入数据岛指将XML文档内容放在<xml>标记中,使用方法如例8-1所示。【例8-1】

案例说明:使用<xml>标记将数据岛直接嵌入到XML文档中。

程序名称:ch8-1.htm

01<html>

02<head><title>数据岛的直接嵌入</title></head>

03<body>

04<p>XML文档内嵌在HTML文档中</p>

05<xmlid="XMLData">

06<?xmlversion="1.0"encoding="UTF-8"?>

07<Book>08<Title>软件工程</Title>

09<Author>邓良松,刘海岩,陆丽娜</Author>

10<Publisher>西安电子科技大学出版社</Publisher>

11<PubDate>2001年6月</PubDate>

12<ISBN>7-5606-0924-4</ISBN>

13</Book>

14</xml>

15</body>

16</html>案例分析:第05行至第14行使用<xml>标记封装XML数据源,属性id定义数据源标识“XMLData”。

外部引入数据岛指使用<xml>标记的src属性将外部XML文档加载到HTML文档中,使用方法如例8-2所示。【例8-2】

案例说明:使用外部引用方式将xml数据源引入到HTML文档中。

程序名称:ch8-2.htm

01<html>

02<head><title>数据岛的外部引用</title></head>

03<body>

04<p>使用外部引用方式将xml数据源引入到HTML文档中</p>

05<xmlid="XMLData"src="ch8-1.xml">

06</body>

07</html>案例分析:第05行使用<xml>标记的src属性将外部XML文件“ch8-1.xml”引入到HTML文档中。

8.3XML数据与HTML元素绑定

在IE5.0以上的版本中存在部分标记支持数据岛绑定。表8-3为支持XML数据绑定的常用HTML标记。表8-3可以绑定XML数据的常用HTML标记表中被绑定的innerHTML属性允许XML元素内容中出现HTML标记,这些标记在浏览器中被解释执行。当含有HTML标记的XML元素被绑定到src、value、innerText等属性时,浏览器不处理这些标记,只原样显示。

8.4XML数据记录绑定

可以使用绑定技术将XML数据源绑定到HTML单标记来显示XML单记录数据。XML多记录数据显示需要使用数据源对象的记录集。下面讨论单记录数据及多记录数据集的绑定和显示。8.4.1单记录数据绑定

【例8-3】

案例说明:绑定单个HTML标记的XML文档的处理。

程序名称:ch8-3.htm

01<html>

02<head><title>绑定单个记录的XML文档</title></head>

03<body>

04<xmlid="XMLData">

05<?xmlversion="1.0"encoding="UTF-8"?>

06<BookList>07<Book>

08<Title>软件工程</Title>

09<Author>邓良松,刘海岩,陆丽娜</Author>

10<Publisher>西安电子科技大学出版社</Publisher>

11<PubDate>2001年6月</PubDate>

12<ISBN>7-5606-0924-4</ISBN>

13</Book>

14</BookList>

15</xml>16<h3>被绑定的图书信息:</h3>

17<divid="htmlDiv"style="border:1pxsolidblack;padding:10px;">

18书名:

19<spandatasrc="#XMLData"datafld="Title"></span><br/>

20作者:

21<spandatasrc="#XMLData"datafld="Author"></span><br/>

22出版社:23<spaniddatasrc="#XMLData"datafld="Publisher"></span><br/>

24出版日期:

25<spandatasrc="#XMLData"datafld="PubDate"></span><br/>

26ISBN:

27<spandatasrc="#XMLData"datafld="ISBN"></span><br/>

28</div>

29</body>

30</html>案例分析:使用单标记绑定XML文档时,被绑定的XML文档通常是三层结构——第一层为根元素,如例8-3中程序ch8-3.htm中第06行的<BookList>元素;第二层子元素为记录元素,如第07行的<Book>元素;第三层的子元素为记录的字段,如第08行至第12行的<Title>等元素。

第04行和第15行的<xml>元素使用内嵌方式封装了XML数据源,属性id定义数据源对象的标识符为“XMLData”。第17行和第28行使用<div>定义了一个层对象,用于显示数据岛中的数据。在层对象中使用<span>标记绑定XML数据源,如第19行的代码:

<spandatasrc="#XMLData"datafld="Title"></span>被绑定标记<span>的“datasrc”属性指向所使用的数据岛标识“XMLData”,注意在标识前需加“#”;被绑定标记的datafld属性指向数据岛记录元素的字段<Title>,其他记录字段的处理方法类似。

程序ch8-3.htm在浏览器中的运行结果如图8-1所示。图8-1程序ch8-3.htm在浏览器中的运行结果8.4.2多记录数据集绑定

数据岛对象本质上是个记录集(recordset),当要显示多个记录时,可以用记录集所提供的方法浏览记录。表8-4列出了数据岛记录集的方法。表8-4数据岛记录集recordset对象的方法【例8-4】

案例说明:使用数据岛记录集属性翻页显示多条记录。

程序名称:ch8-2.xml

01<?xmlversion="1.0"encoding="UTF-8"?>

02<BookList>

03<Book>

04<Title>软件系统开发技术(修订版)</Title>

05<Author>潘锦平,施小英,姚天昉</Author>

06<Publisher>西安电子科技大学出版社</Publisher>

07<PubDate>2001年1月</PubDate>08<ISBN>7-5606-0492-7</ISBN>

09</Book>

10…

11</BookList>程序名称:ch8-4.htm

01<html>

02<head><title>绑定单个记录的XML文档</title></head>

03<body>

04<xmlid="XMLData"src="ch8-2.xml"></xml>

05<h3>被绑定的图书信息:</h3>

06<divid="htmlDiv"style="border:1pxsolidblack;padding:10px;">

07书名:

08<spandatasrc="#XMLData"datafld="Title"></span><br/>09作者:

10<spandatasrc="#XMLData"datafld="Author"></span><br/>

11出版社:

12<spaniddatasrc="#XMLData"datafld="Publisher"></span><br/>

13出版日期:

14<spandatasrc="#XMLData"datafld="PubDate"></span><br/>

15ISBN:16<spandatasrc="#XMLData"datafld="ISBN"></span><br/>

17</div>

18<buttononclick="XMLData.recordset.moveFirst()">第一条记录</button>

19<buttononclick="if(!XMLData.recordset.BOF){XMLData.recordset.movePrevious();}">前一记录</button>

20<buttononclick="if(!XMLData.recordset.EOF){XMLData.recordset.moveNext();}">下一记录</button>21<buttononclick="XMLData.recordset.moveLast()">最后一条记录</button>

22</body>

23</html>案例分析:程序ch8-4.htm的第04行使用<xml>标记定义一个数据岛“XMLData”将外部文件“ch8-2.xml”引入到HTML中。第08行至第16行将数据岛字段“Title”、“Author”、“Publisher”、“PubDate”、“ISBN”与<span>标记绑定,内嵌在第06行定义的层对象“htmlDiv”中。第18行至第21行定义了四个“Button”按钮,按钮的“onclick”事件调用数据岛记录集的方法实现翻页显示记录集记录。第19行的JavaScript脚本:

if(!XMLData.recordset.BOF){XMLData.recordset.movePrevious();}

先判断记录指针是否已经移到记录集的首部,然后再决定是否访问前一条记录。

第20行的JavaScript脚本:

if(!XMLData.recordset.EOF){XMLData.recordset.

moveNext();}

先判断记录指针是否已经移到记录集的尾部,然后再决定是否访问后一条记录。

程序ch8-4.htm在浏览器中的运行结果如图8-2所示。图8-2程序ch8-4.htm在浏览器中的运行结果

8.5使用表格绑定显示数据岛

XML数据源对象可以绑定在HTML表格标记上,绑定表格后XML数据源对象的数据将显示在表格中。通过表格显示数据岛数据时,表头必须通过<thead>和<th>标记设定。8.5.1绑定简单表格

【例8-5】

案例说明:使用HTML表格绑定显示简单XML文档。

程序名称:ch8-5.htm

01<html>

02<head><title>绑定单个记录的XML文档</title></head>

03<body>

04<xmlid="XMLData"src="ch8-2.xml"></xml>

05<h3align="center">图书信息列表</h3>

06<tabledatasrc="#XMLData"cellspacing="5"align="center">07<theadbgcolor="#c0c060">

08<th>书名</th>

09<th>作者</th>

10<th>出版社</th>

11<th>出版日期</th>

12<th>ISBN</th>

13</thead>

14<trbgcolor="#ffffc0">

15<td><spandatafld="Title"></span></td>

16<td><spandatafld="Author"></span></td>

17<td><spandatafld="Publisher"></span></td>18<td><spandatafld="PubDate"></span></td>

19<td><spandatafld="ISBN"></span></td>

20</tr>

21</table>

22</body>

23</html>案例分析:程序ch8-5.htm中第04行定义数据岛XMLData将外部文件ch8-2.xml引入到HTML文档中;第06行的datasrc属性绑定数据岛标识XMLData;第15行至第20行使用标记<span>绑定要显示的XML字段,<span>标记嵌入到表格的单元格中。

程序ch8-5.htm在浏览器中的运行结果如图8-3所示。图8-3程序ch8-5.htm在浏览器中的运行结果8.5.2绑定嵌套表格

表格的HTML代码是一个三层的XML程序,根元素是<table>标记,第二层元素是<tr>标记,第三层元素是<td>标记。表格的树状结构对应了普通的三层XML文档,只有简单的二级XML文档才能与简单表格绑定。如果XML文档多于二级且多出的级数又能构成二级结构,则可以使用嵌套表格显示。【例8-6】

案例说明:使用嵌套表格显示多层结构的XML文档。

程序名称:ch8-3.xml

01<?xmlversion="1.0"encoding="UTF-8"?>

02<BookList>

03<Category>

04<Type>计算机</Type>

05<Book>

06<Title>软件系统开发技术(修订版)</Title>

07<Author>潘锦平,施小英,姚天昉</Author>08<Publisher>西安电子科技大学出版社</Publisher>

09<PubDate>2001年1月</PubDate>

10<ISBN>7-5606-0492-7</ISBN>

11</Book>

12…

13</Category>

14<Category>

15<Type>小说</Type>

16<Book>

17<Title>基督山伯爵(上下册)</Title>

18<Author>大仲马(法)</Author>19<Publisher>上海译文出版社</Publisher>

20<PubDate>2001年8月</PubDate>

21<ISBN>7-5327-2651-7</ISBN>

22</Book>

23…

24</Category>

25</BookList>程序名称:ch8-6.htm

01<html>

02<head><title>绑定嵌套表格</title></head>

03<body>

04<xmlid="XMLData"src="ch8-3.xml"></xml>

05<h3align="center">图书信息列表</h3>

06<tabledatasrc="#XMLData"align="center"width="650"bgcolor="#c0c060">

07<tr>

08<thalign="left"><spandatafld="Type"></span></th>09</tr>

10<tr>

11<td>

12<tabledatasrc="#XMLData"datafld="Book"width="655"bgcolor="#ffffc0">

13<theadalign="left">

14<th>书名</th>

15<th>作者</th>

16<th>出版社</th>17<th>出版日期</th>

18<th>ISBN</th>

19</thead>

20<tr>

21<td><spandatafld="Title"></span></td>

22<td><spandatafld="Author"></span></td>

23<td><spandatafld="Publisher"></span></td>

24<td><spandatafld="PubDate"></span></td>

25<td><spandatafld="ISBN"></span></td>26</tr>

27</table>

28</td>

29</tr>

30</table>

31</body>

32</html>案例分析:例8-6中的ch8-3.xml文档具有两个二级结构的XML文档。第一个二级结构的字段<Book>同时是第二个二级结构的根。程序ch8-6.htm第06行绑定第一层表格,第12行绑定第二层表格,表格属性datafld与XML元素Book绑定。

程序ch8-6.htm在浏览器中的运行结果如图8-4所示。图8-4程序ch8-6.htm在浏览器中的运行结果8.5.3表格分页显示

表格可以分页显示XML文档,表格标记<table>的datapagesize属性用于设定一页可以显示的记录条数。表格标记提供的方法可以浏览各页的内容。表8-5列出了<table>标记用于分页浏览的方法。表8-5<table>标记的方法【例8-7】

案例说明:使用表格标记的分页属性对绑定到表格的XML数据进行分页显示。

程序名称:ch8-7.htm

01<html>

02<head><title>绑定简单表格</title></head>

03<body>

04<xmlid=“XMLData”src=“ch8-2.xml”></xml>

05<h3align="center">图书信息列表</h3>06<tableid="xmltable"datasrc="#XMLData"align="center"datapagesize="1"width="650">

07<theadbgcolor="#c0c060"align="left">

08<th>书名</th>

09<th>作者</th>

10<th>出版社</th>

11<th>出版日期</th>

12<th>ISBN</th>

13</thead>

14<trbgcolor="#ffffc0">15<td><spandatafld="Title"></span></td>

16<td><spandatafld="Author"></span></td>

17<td><spandatafld="Publisher"></span></td>

18<td><spandatafld="PubDate"></span></td>

19<td><spandatafld="ISBN"></span></td>

20</tr>

21</table>

22<hr/>

23<divalign="center">24<buttononclick="xmltable.firstPage()">第一页</button>

25<buttononclick="xmltable.previousPage()">前一页</button>

26<buttononclick="xmltable.nextPage()">后一页</button>

27<buttononclick="xmltable.lastPage()">最后一页</button>

28</div>

29</body>

30</html>案例分析:程序ch8-7.htm中第04行定义数据岛XMLData将外部文件ch8-2.xml引入到HTML文档中;第06行定义表格xmltable,表格的属性datasrc绑定数据岛XMLdata,属性datapagesize的值为1即设置每页显示1条记录;第24行至第27行使用表格及Button按钮的onclick事件执行表格xmltable的分页浏览方法,实现绑定了表格的XML数据的分页浏览。

程序ch8-7.htm在浏览器中的运行结果如图8-5所示。图8-5程序ch8-7.htm在浏览器中的运行结果

8.6显示数据岛中的XML元素属性

前面各节介绍的是XML数据源元素的绑定及显示,这些XML元素中不含属性。当XML元素中含有属性时,数据岛将属性作为该元素的子元素进行处理。元素分为底层元素和非底层元素,处理方法有所区别。下面介绍XML数据源元素属性的绑定及显示。8.6.1显示XML非底层元素属性

【例8-8】

案例说明:使用表格绑定技术显示XML文档非底层元素的属性,本案例使用ch8-6.htm绑定ch8-4.xml文档。程序名称:ch8-4.xml

01<?xmlversion="1.0"encoding="UTF-8"?>

02<BookList>

03<CategoryType="计算机">

04<Book>

05<Title>软件系统开发技术(修订版)</Title>

06<Author>潘锦平施小英姚天昉</Author>

07<Publisher>西安电子科技大学出版社</Publisher>

08<PubDate>2001年1月</PubDate>

09<ISBN>7-5606-0492-7</ISBN>10</Book>

11…

12</Category>

13<CategoryType="小说">

14<Book>

15<Title>基督山伯爵(上下册)</Title>

16<Author>大仲马(法)</Author>

17<Publisher>上海译文出版社</Publisher>

18<PubDate>2001年8月</PubDate>

19<ISBN>7-5327-2651-7</ISBN>20</Book>

21…

22</Category>

23</BookList>案例分析:当XML的元素含有属性,同时又有子元素时,该XML元素为非底层元素,属性将作为该元素的子元素进行处理。如ch8-4.xml文档的第03行和第13行,在与数据岛进行绑定时,元素<Category>的属性Type将作为<Category>元素的子元素与HTML的<span>标记进行绑定,所以ch8-4.xml文档可以使用例8-6中的程序ch8-6.htm来处理。8.6.2显示XML底层元素属性

【例8-9】

案例说明:使用表格绑定技术显示XML数据底层元素的属性。

程序名称:ch8-5.xml

01<?xmlversion=“1.0”encoding=“UTF-8”?>

02<BookList>

03<Book>

04<TitleType=“计算机”>软件系统开发技术(修订版)</Title>

05<Author>潘锦平,施小英,姚天昉</Author>06<Publisher>西安电子科技大学出版社</Publisher>

07<PubDate>2001年1月</PubDate>

08<ISBN>7-5606-0492-7</ISBN>

09</Book>

10…

11</BookList>程序名称:ch8-8.htm

01<html>

02<head><title>显示XML底层元素</title></head>

03<body>

04<xmlid="XMLData"src="ch8-5.xml"></xml>

05<h3align="center">图书信息列表</h3>

06<tabledatasrc="#XMLData"align="center"bgcolor="#c0c060">

07<theadalign="left">

08<th>书名</th>

09<th>类别</th>10<th>作者</th>

11<th>出版社</th>

12<th>出版日期</th>

13<th>ISBN</th>

14</thead>

15<trbgcolor="#ffffc0">

16<td>

17<tabledatasrc="#XMLData"datafld="Title">

18<tr>19<td><spandatafld="$text"></span></td>

20</tr>

21</table>

22</td>

23<td>

24<tabledatasrc="#XMLData"datafld="Title">

25<tr>

26<td><spandatafld="Type"></span></td>

27</tr>

28</table>29</td>

30<td><spandatafld="Author"></span></td>

31<td><spandatafld="Publisher"></span></td>

32<td><spandatafld="PubDate"></span></td>

33<td><spandatafld="ISBN"></span></td>

34</tr>

35</table>

36</body>

37</html>案例分析:XML底层元素包含属性,如ch8-5.xml文档的第04行底层元素<Title>具有属性Type,在与HTML元素进行绑定时,属性Type看做元素<Title>的子元素,同时元素的内容也看做该元素的子元素,内容作为子元素时命名为$text。程序ch8-8.htm的第17行至第21行定义嵌套的表格绑定<Title>,元素<Title>的内容$text绑定<span>。第24行至第28行也定义嵌套表格绑定<Title>,属性Type看做<Title>子元素绑定<span>。

程序ch8-8.htm在浏览器中的运行结果如图8-6所示。图8-6程序ch8-8.htm在浏览器中的运行结果

8.7综合实例

本节将使用前几章的内容和本章的数据岛知识设计一个简单的图书检索系统。图书检索系统的功能页面如图8-7所示,页面的上半区域为图书简要信息列表,下半区域为一本图书的内容简介。当点击“查看”按钮时,被查阅的图书内容简介将显示在“图书主要内容介绍”区域。图8-7使用数据岛检索图书信息

1.编写XML文档

首先编写存储图书简要信息的XML文档和每本图书内容简介的XML文档。图书简要信息XML文档存储“图书编号”、“书名”、“作者”、“出版社”、“出版日期”和“ISBN”等图书简要信息。通过“图书编号”可以链接到存储该图书内容简介的XML文档。每本图书的内容介绍信息各自存放在不同的XML档中。

存储图书简要信息的XML文档(BookIndex.xml)和存储第一本图书介绍信息的XML文档(Book.xml)结构如下:

案例说明:存储图书简要信息的XML文档。程序名称:BookIndex.xml

01<?xmlversion="1.0"encoding="UTF-8"?>

02<BookList>

03<Book>

04<BookID>1</BookID>

05<Title>软件系统开发技术(修订版)</Title>

06<Author>潘锦平,施小英,姚天昉</Author>

07<Publisher>西安电子科技大学出版社</Publisher>08<PubDate>2001年1月</PubDate>

09<ISBN>7-5606-0492-7</ISBN>

10</Book>

11…

12</BookList>案例分析:XML文档“BookIndex.xml”是一个三层的结构,文档中的第03行至第10行存储了一条图书记录。字段<BookID>元素存储了第一本图书的编号,图书的编号唯一确定一本图书。存储其他图书的记录元素结构与此类似。案例说明:存储图书内容简介的XML文档。

程序名称:Book1.xml

01<?xmlversion="1.0"encoding="UTF-8"?>

02<Book>

03<Title>软件系统开发技术(修订版)</Title>

04<CoverName>cover1.jpg</CoverName>

05<BigCover>cover1-1.jpg</BigCover>06<Abstract><![CDATA[本书介绍大型软件系统的开发技术,主要是目前软件界最为流行,也较实用的结构化方法,包括支持这一方法的工具和环境;还简述了其他一些方法和技术,如Jackson方法、面向对象的软件开发方法、测试和维护技术以及数据库设计等,使材料更系统化,并有所比较。]]></Abstract>

07</Book>案例分析:程序“Book1.xml”中第03行的元素<Title>存储书名,第04行的元素<CoverName>存储图书封面缩略图文件名称,第05行存储图书封面放大图文件名称,第06行的元素<Abstract>存储图书的内容简介。

2.编写XSL转换文档

使用XSLT模板转换技术将存储图书内容简介的XML文档(如Book1.xml)转换为HTML文档,呈现在图8-7所示页面“图书主要内容介绍”区域。使用如下的XSL转换程序“TransformBookContent.xsl”进行XML文档的转换(如转换Book1.xml)。

案例说明:将存储图书内容简介的XML文档(如Book1.xml)转换为可以显示的HTML文档。程序“TransformBookContent.xsl”给出主要代码。程序名称:TransformBookContent.xsl

01<tableborder="0">

02<tr>

03<thalign="center"colspan="2"style="color:#8B0000">内容简介</th>

04</tr>

05<xsl:for-eachselect="Book">

06<tr>

07<tdrowspan="2"height="6">

08<xsl:elementname="a">09<xsl:attributename="href"><xsl:value-ofselect="BigCover"/></xsl:attribute>

10<xsl:attributename="target">_blank</xsl:attribute>

11<xsl:elementname="img">

12<xsl:attributename="src"><xsl:value-ofselect="CoverName"/></xsl:attribute>

13</xsl:element>

14</xsl:element>

15</td>16<tdstyle="font-weight:bold"><xsl:value-ofselect="Title"/></td>

17</tr>

18<tr>

19<tdclass="a1"><xsl:value-ofselect="Abstract"/></td>

20</tr>

21</xsl:for-each>

22</table>案例分析:程序“TransformBookContent.xsl”中第08行至第14行定义一个HTML超链接元素<a>。第11行至第13行定义一个图片元素<img>,第12行为<img>元素增加一个属性“src”,属性值为元素<CoberName>的内容(如Book1.xml中的“cover1.jpg”),<img>元素将外部图片文件引入到HTML文档中作为元素<a>的链接图标。第09行为元素<a>增加一个属性“href”,属性值为元素“BigCover”的内容(如Book1.xml中的“cover1-1.jpg”);第10行为元素<a>增加一个属性“target”,属性值为“_blank”。当单击图片(“cover1.jpg”)超链接时,将在新空白窗口中打开图片“cover1-1.jpg”。第08行至第14行嵌入在表格单元格中的HTML标记如下所示:

<ahref=“cover1.jpg”target=“_blank”><imgsrc=“cover1-1.jpg”></a>

第14行和第19行分别将图书的标题和内容简介嵌入到HTML表格单元格中。

3.使用数据岛检索图书信息

程序“BookIndex.htm”使用数据岛技术将“BookIndex.xml”文档(存储图书简要信息)与表格绑定,并使用表格的分页显示属性将XML内容显示在图8-7所示页面的上半区域。当点击表格单元格中的“查询”按钮时,程序根据图书的编号将包含图书详细内容的XML文档从服务器取到客户端的数据岛中,然后启用“TransformBookContent.xsl”转换程序将图书标题、封面和内容简介嵌入到含有表格标记的HTML文档中,并显示在“图书主要内容介绍”文字下方的层对象中。使用数据岛技术异步回发请求,在客户端和服务器端之间传输XML文档,不需要刷新网页,实现页面的局部更新。

案例说明:使用数据岛技术检索图书的信息。下面对“BookIndex.htm”的主要代码进行分析。

程序名称:BookIndex.htm

定义层对象BookDetail_Div用于显示“Transform

BookContent.xsl”程序的转换结果:

<divid="BookDetail_Div"style="border:1pxsolidblack;padding:10px;width:800px;height:200px"></div>

数据岛的定义:

01<!--加载图书简要信息数据岛-->

02<xmlid="XMLDataIndex"src="BookIndex.xml"></xml>

03<!--图书简介数据岛-->

04<xmlid="XMLDataDetail"onDatasetComplete="show_BookDetail(window.event.srcElement)"></xml>

05<!--XSL转换文档数据岛-->

06<xmlid="XSLData"src="TransformBookContent.xsl"></xml>案例分析:第02行定义数据岛“XMLDataIndex”在程序第一次启动时,将“BookIndex.xml”文档加载到客户端。第04行定义数据岛“XMLDataDetail”用于接收存储图书内容简介等详细信息的XML文档,当XML文档下载到客户端时,触发事件“show_BookDetail”将XML文档转换为HTML文档显示在层“BookDetail_Div”中。“window.event.srcElement”是当前的事件源,此处指当前的数据岛对象“XMLDataDetail”。第06行定义数据岛“XSLData”在页面第一次被访问时,将“TransformBookContent.xsl”文档下载到客户端,用于以后的XML转换。

定义表格“xmltable”用于绑定“XMLDataIndex”数据岛:

01<tableid="xmltable"datasrc="#XMLDataIndex"align="center"datapagesize="2"width="800">

02<trbgcolor="#ffffc0">

03<td><spandatafld="BookID"></span></td>

04<td><spandatafld="Title"></span></td>

05<td><spandatafld="Author"></span></td>06<td><spandatafld="Publisher"></span></td>

07<td><spandatafld="PubDate"></span></td>

08<td><spandatafld="ISBN"></span></td>

09<td><buttonid="ref_button"

onclick="ref_BookDetail_DSO(window.event.srcElement)">查看</button></td>

10</tr>

11</table>

12<divid="bt_div"align="center">13<buttononclick="xmltable.firstPage()">第一页</button>

14<buttononclick="xmltable.previousPage()">前一页</button>

15<buttononclick="xmltable.nextPage()">后一页</button>

16<buttononclick="xmltable.lastPage()">最后一页</button>

17</div>案例分析:第03行至第08行将数据岛中的XML标记绑定到<span>元素上,嵌入在表格的单元格中。第09行b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论