当前位置:文档之家› 第07章习题答案

第07章习题答案

第07章XML的数据源对象习题答案1.什么是数据岛?为什么要引用数据岛?如何声明一个数据岛?答案:数据岛是指存在于HTML页面中的XML代码,作为HTML页面数据的来源。

通过数据岛这种技术,实现了页面范围内数据和显示的分离。

可以提高数据的共享性,方便数据的维护;可以提高程序的扩展性和代码的重用性。

声明数据岛通过标记<xml>实现,声明内部数据岛时,把XML代码段写在标记<xml>之间。

声明外部数据岛时,通过标记<xml>的src属性指明外部的XML文件。

在声明数据岛时,需要通过标记<xml>的id属性为数据岛命名,用于标识这个数据岛。

2.如何实现HTML对象和数据岛的绑定并取出需要的数据?答案:在HTML中实现对象和数据岛绑定通过对象的“datasrc”属性实现,属性的值为“#”加上数据岛的名称。

从数据岛中取数据的方法是通过HTML对象的“datafld”属性实现,吧需要的数据的标记名称做为“datafld”属性的值。

3.通过记录集管理数据岛都有哪些方法?答案:通过记录集管理数据岛,包括取记录、遍历记录、插入和删除记录、对记录集分页和把记录集转换为数组。

取记录有如下方法:rs(‘标记名称’)rs(标记的编号)rs.Fields(‘标记名称’)rs.Fields(标记的编号)rs.Fields.Item(‘标记名称’)rs.Fields.Item(标记的编号)遍历记录有如下方法:moveNex()方法:当前记录移动到下一条记录。

movePrevious()方法:当前记录移动到上一条记录。

moveFirst()方法:当前记录移动到第一条记录。

moveLast()方法:当前记录移动到最后一条记录。

moveNumRecords()方法:当前记录向前或向后移动到指定数目的记录。

插入和删除记录的方法包括:Addnew()方法:添加新纪录Delete()方法:删除记录对记录集分页通过设置如下属性实现:AbsolutePage属性,用于指定当前的页。

PageCount属性,返回记录集中的逻辑页数。

PageSize属性,用于指定每个逻辑页所包含的记录数,默认值是10。

把记录集转换为数组通过getrows()方法实现。

4.SQL Server 2000对XML提供了哪些支持?通过这些支持如何进行数据交换?答案:SQL Server 2000对XML的支持包括以下内容:(1)能够使用HTTP访问SQL Server。

(2)支持XDR(XML数据简化)架构并且能够指定对这些架构的XPath查询。

(3)能够检索并写入XML数据。

(4)增强了SQL Server 2000 OLE DB 提供程序(SQLOLEDB),使得可以将XML 文档设置为命令文本并以流的形式返回结果集。

把数据库中的数据以XML的形式输出,通过在select语句中加入“FOR XML”子句完成,该子句包含一些模式选项,可以输出不同格式的XML文件。

把XML文件数据插入数据库中,通过OPENXML函数实现。

5.编写HTML代码,以下面的XML文件为数据源对象,显示的结果如图7-16所示。

功能要求:(1)分页显示数据。

(2)点击“首页”、“上一页”、“下一页”或“尾页”按钮进行相应页的跳转。

(3)在文本框中输入页码,点击“确定”按钮可以跳到相应的页。

图7-16 程序运行结果所需的XML文件代码如下:<?xml version="1.0" encoding="gb2312" ?><numbers><area><country>中国</country><number>0086</number> </area><area><country>越南</country><number>0084</number> </area><area><country>朝鲜</country><number>00850</number> </area><area><country>日本</country><number>0081</number> </area><area><country>俄罗斯</country><number>007</number> </area><area><country>法国</country><number>0033</number> </area><area><country>英国</country><number>0044</number></area><area><country>德国</country><number>00349</number></area><area><country>美国</country><number>001</number></area><area><country>智利</country><number>0056</number></area><area><country>巴西</country><number>0055</number></area><area><country>澳大利亚</country><number>0061</number></area></numbers>答案:<html><head><title>习题5</title></head><body><center><h3>部分国家电话直拨区号表</h3><div id="s_t"></div>第<span id="cpage"></span>页/共<span id="tpage"></span>页&nbsp;&nbsp;转到第<input type="text" name="pagenum" size="3" />页<input type="button" value="确定" onclick="gotopage(pagenum.value);" /><br> <input type="button" value="首页" onclick="firstpage();" /><input type="button" value="上一页" onclick="previouspage();" /><input type="button" value="下一页" onclick="nextpage();" /><input type="button" value="尾页" onclick="lastpage();" /><xml id="students" src="xiti5.xml" /><script language="javascript">var rs = students.recordset;rs.pagesize=3;function firstpage(){rs.absolutepage=1;disp();}function previouspage(){if(rs.absolutepage==1){alert("已经是第一页!");}else{rs.absolutepage=rs.absolutepage-1;disp();}}function nextpage(){if(rs.absolutepage==rs.pagecount){alert("已经是最后一页!");}else{rs.absolutepage=rs.absolutepage+1;disp();}}function lastpage(){rs.absolutepage=rs.pagecount;disp();}function gotopage(pagenum){if(pagenum>=1&&pagenum<=rs.pagecount){rs.absolutepage=pagenum;disp();}else{alert("输入的页码错误!");}}function disp(){stu_tab="";stu_tab="<table><tr bgcolor='#AAAAAA'>";stu_tab=stu_tab+"<th width='200' align='center'>国家名称</th>";stu_tab=stu_tab+"<th width='200' align='center'>直拨区号</th></tr>";for(i=1;i<=rs.pagesize;i++){if(i<=rs.pagesize&&!rs.EOF){stu_tab=stu_tab+"<tr bgcolor='#EEEEEE'><td align='center'>"+rs(0)+"</td>";stu_tab=stu_tab+"<td align='center'>"+rs(1)+"</td></tr>";if(i<rs.pagesize){rs.moveNext();}}}stu_tab=stu_tab+"</table>";s_t.innerHTML=stu_tab;cpage.innerHTML=rs.absolutepage;tpage.innerHTML=rs.pagecount;}disp()</script></body></html>。

相关主题