目录
七、总结:
一、DSO定义:
与HTML文档绑定的XML数据源对象简称为DSO,通常也被称为嵌入HTML文档中的XML数据岛。
二、DSO功能:
使用DSO,借助HTML网页来显示XML文档内容,既能保持XML文档数据与其显示格式分离的特点,又具备HTML网页的丰富显示格式。
三、DSO使用方法:
利用DSO技术显示XML文档的机制是,把链接到HTML网页中的一个XM文档或一段XML数据当作一个类似于数据库的记录集( Recordset)对象,然后使用与数据库类似的操作方法来显示和浏览被链接的XMIL文档的内容。
采用DSO技术,首先需要进行数据绑定,即将XML文档数据绑定到HTML文档,然后再将特定的XML元素链接到SPAN或TABLE等标准的HTML元素,这些HTML元素就会自动显示它们所绑定的XML元素内容。
四、recordset对象:
将XML文档与HTML文档绑定之后,在内存中生成的记录集合是一个属于DSO的recordset对象,该对象提供了一组符合Microsoft的ADO标准数据访问技术的方法和属性,因而可以通过script编程调用这些方法和属性来对记录集进行访问和处理。
可以根据需要调用recordset对象的任何一个方法来撰写有关的script程序。调用这些方法最简单的方式就是在HTML文档中通过将某个方法直接指定到BUTTON元素的ONCLICK属性中。
五、样例:
说明:可以自定义显示同学录每页的记录数,进行翻页查看操作。
所用工具:XMLSpy2013
文档结构
--classmate.html
--class.xml
--img
--13.jpg
--23.jpg
--24.jpg
class.xml
<?xml version="1.0" encoding="UTF-8"?>
<classmateRecords>
<classmate>
<name> Charles</name>
<photo>img\13.jpg</photo>
<phone>123456</phone>
<wechat>XXXXX</wechat>
<mail>00000000@126.com</mail>
<address>北京市大兴区</address>
</classmate>
<classmate>
<name> Mark</name>
<photo>img\23.jpg</photo>
<phone>345678</phone>
<wechat>YYYYY</wechat>
<mail>11111111@126.com</mail>
<address>北京市海淀区</address>
</classmate>
<classmate>
<name> Bill</name>
<photo>img\24.jpg</photo>
<phone>456789</phone>
<wechat>ZZZZZ</wechat>
<mail>22222222@126.com</mail>
<address>北京市朝阳区</address>
</classmate>
<!--更多同学-->
</classmateRecords>
classmate.html
<!--File Name:classmate.html -->
<HTML>
<HEAD>
<TITLE>同学录</TITLE>
<xml id="dso" src="class.xml"> </xml> <!--将XML文档与HTML绑定-->
<script lang="javascript">
function ViewClassmates(){
Classmates.dataPageSize=items.value;
Classmates.firstPage();
}
</script>
</HEAD>
<BODY>
<center>
每页显示的记录数:<input type="text" maxlength="1" size="2" id="items"/>
<input type="button" value="查看" onclick="ViewClassmates()"/>
<table id="Classmates" datasrc="#dso" border="1" cellpadding="5" >
<!-- 在这里通过id绑定XML-->
<thead>
<tr>
<th>姓名</th>
<th>照片</th>
<th>电话</th>
<th>微信</th>
<th>邮箱</th>
<th>住址</th>
</tr>
</thead>
<tbody>
<tr ALIGN="center">
<td> <span datafld="name" ></span> </td>
<td><span><IMG DATAFLD="photo"></span> </td>
<td> <span datafld="phone" ></span> </td>
<td> <span datafld="wechat" ></span> </td>
<td> <span datafld="mail" ></span> </td>
<td> <span datafld="address" ></span> </td>
</tr>
</tbody>
</table>
<input type="button" name="" value="第一页" onclick="Classmates.firstPage()" />
<input type="button" name="" value="上一页" onclick="Classmates.previousPage()" />
<input type="button" name="" value="下一页" onclick="Classmates.nextPage()" />
<input type="button" name=""value="最后一页"onclick="Classmates.lastPage()" />
</center>
</BODY>
</HTML>
六、效果:
七、总结:
使用DSO可以更灵活的显示XML中的数据,只需要先把XML与HTML绑定,然后将XML中的元素绑定到HTML中的标签中