XML 数据岛

XML 数据岛 我们通常将XML与HTML结合来显示XML中的数据,既可以在HTML脚本中使用DOMDocument对象载入一个XML进行处理;也可以用数据岛直接加载XML文件;

这里先讲一下XML数据岛的使用:

一 首先在HTML中嵌入XML数据:
   有两种方法嵌入XML数据:
   (1)直接在<xml></xml>中写入xml内容:
   <xml id="xmlData">
   <student>
     <name>colin.zhang</name>
     <sex>male</sex>
     <age>24</age>
   </student>
   </xml>
   (2)或者导入xml文档
   <xml id="xmlData" src="student.xml">
   </xml>

二 将以上创建的数据岛绑定到HTML标签上:
   <标签名 datasrc="#数据岛id名">
   例如:
<table border=1 datasrc="#xmlData">
    <tr>
        <td><span datafld="name"/></td>
        <td><span datafld="sex"/></td>
        <td><span datafld="age"/></td>
    </tr>
</table>
以上代码将xmlData与table绑定,<table></table>中的所有元素组成xmlData的一条数据,如果xmlData
中有多条数据,则依次列出;
   例如:
<table border=1>
<tr>
<td>学生姓名:<span datasrc="#xmlData" DataFLD="name"/></td><BR>
<td>学生性别:<span datasrc="#xmlData" DataFLD="sex"/></td><BR>
<td>学生年龄:<span datasrc="#xmlData" DataFLD="age"/></td><BR>
</tr>
</table>
以上代码在绑定数据岛的同时也为该标签指定填充内容,这种方式只显示数据岛中的第一条数据,如果数据有多条,只显示第一条,但我们可以通过下面的方法来查看其它数据:
数据岛名.recordset.moveFirst()    //查看第一条数据
数据岛名.recordset.movePrevious()    //查看上一条数据
数据岛名.recordset.moveNext()    //查看下一条数据
数据岛名.recordset.moveLast()    //查看最后一条数据
数据岛名.recordset.addNew()    //添加新数据

以下我修改的一个例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body>
   
<XML ID="theXMLisland">
<HotelList>
<Hotel>
<Name>四海大酒店</Name>
<Address>海魂路1号</Address>
<HomePage>www.sihaohotel.com.cn</HomePage>
<E-Mail>master@sihaohotel.com.cn</E-Mail>
<TelePhone>(0989)8888888</TelePhone>
<Grade>五星级</Grade>
</Hotel>
   
<Hotel>
<Name>五湖宾馆</Name>
<Address>东平路99号</Address>
<HomePage>www.wuhu.com.cn</HomePage>
<E-Mail>web@wuhu.com.cn</E-Mail>
<TelePhone>(0979)1111666</TelePhone>
<Grade>四星级</Grade>
</Hotel>
       
<Hotel>
 <Name>“大沙漠”宾馆</Name>
<Address>留香路168号</Address>
<HomePage>www.dashamohotel.com.cn</HomePage>
<E-Mail>master@dashamohotel.com.cn</E-Mail>
<TelePhone>(0989)87878788</TelePhone>
<Grade>五星级</Grade>
</Hotel>
   
<Hotel>
<Name>“画眉鸟”大酒店</Name>
<Address>血海飘香路2号</Address>
<HomePage>www.throstlehotel.com.cn</HomePage>
<E-Mail>chuliuxiang@throstlehotel.com.cn</E-Mail>
<TelePhone>(099)9886666</TelePhone>
<Grade>五星级</Grade>
</Hotel>
</HotelList>
</XML>
   
<table border=1>
<tr>
<td>酒店名称:<span datasrc="#theXMLisland" DataFLD="Name"/></td><BR>
<td>地址:<span datasrc="#theXMLisland" DataFLD="Address"/></td><BR>
<td>主页:<span datasrc="#theXMLisland" DataFLD="HomePage"/></td><BR>
<td>电子邮件:<span datasrc="#theXMLisland" DataFLD="E-Mail"/></td><BR>
<td>电话:<span datasrc="#theXMLisland" DataFLD="TelePhone"/></td><BR>
<td>级别:<span datasrc="#theXMLisland" DataFLD="Grade"/>
</tr>
</table>

<input id="first" TYPE=button value="<< 第一条记录" onclick="theXMLisland.recordset.moveFirst()">
<input id="prev" TYPE=button value="<上一条记录" onclick="theXMLisland.recordset.movePrevious()">
<input id="next" TYPE=button value="下一条记录>" onclick="theXMLisland.recordset.moveNext()">
<input id="last" TYPE=button value="最后一条记录>>" onclick="theXMLisland.recordset.moveLast()">
<input id="Add" TYPE=button value="添加新记录" onclick="theXMLisland.recordset.addNew()">
   

</body>
</html>

posted @ 2006-12-03 21:13  '.Elvis.'  阅读(235)  评论(0)    收藏  举报