XML与ASP简单结合实现HTML模板功能
本文利用的是XML的DSO数据绑定功能来实现ASP代码和HTML代码的分离,从而实现快速更换HTML模板的功能,由于本人只是刚刚开始接触XML,有许多不太了解的,在这里仅仅是提出一点想法,如果本文有错漏的地方请大家指多.
目前快速更换模板功能基本上是处于replace替换模板中的特殊标签后再显示出来,这样加大了许多ASP的处理时间,而且模板文件过长的话,加载到内存里进行处理时也是对服务器内存的一种考验.而XML中提供了一种DSO数据绑定功能.可以将标识替换操作交付给客户端.由于为了简化HTML模板的制作要求.所以,尽量简化HTML模板的XML技术含量是有必要的.
简单来说这个方式只是使用datasrc和dataFLd这两个HTML标签的属性实现的.废话就不多说了,一切实例说话.以下两个例子将说明一切.
例一:单个数据显示
以下是用ASP生成的XML数据岛.
<XML id="XMLdata">
<xData>
<name>coder</name>
<webname>轻灵自由的珍珠</webname>
<weburl>http://blog.csdn.net/oyiboy</weburl>
</xData>
</XML>
显示时的HTML原码:
<table datasrc=../../"#XMLdata" border=1>
<tr>
<td colspan=2>我的简单介绍</td>
</tr>
<tr>
<td>我的名称:</td>
<td><span dataFLd="name"></span></td>
</tr>
<tr>
<td>网站名称:</td>
<td><span dataFLd="webname"></span></td>
</tr>
<tr>
<td>网站地址:</td>
<td><a dataFLd="weburl"><span dataFLd="weburl"></span></a></td>
</tr>
</table>
例二:多条数据显示
以下是用ASP生成的XML数据岛.
<XML id="XMLdataList">
<xData>
<webList>
<webname>轻灵自由的珍珠</webname>
<weburl>http://blog.csdn.net/oyiboy</weburl>
</webList>
<webList>
<webname>Estyle(靳田)之狂想手扎</webname>
<weburl>http://blog.csdn.net/estyle</weburl>
</webList>
<webList>
<webname>最爱白菜</webname>
<weburl>http://blog.csdn.net/qunluo</weburl>
</webList>
</xData>
</XML>
显示时的HTML原码:
<table datasrc=../../"#XMLdataList" border=1>
<thead>
<tr>
<td colspan=2>我关注的Csdn Blog列表</td>
</tr>
<tr>
<td align="center">名称</td>
<td align="center">地址</td>
</tr>
</thead>
<tbody>
<tr>
<td><span dataFLd="webname"></span></td>
<td><a dataFLd="weburl"><span dataFLd="weburl"></span></a></td>
</tr>
</tbody>
</table>
(以上两个例子可以copy到一个文件内查看实际运行效果.)
注意例二HTML原码中的thead和tbody,在显示多条记录时会有用的,如果不明白他们有什么用的可以去掉它们后看看会有什么后果.
顺便说一句,图像和按键的数据绑定和超链接的绑定是差不多的,如:<img dataFLd="webimg">和<button dataFLd="buttonvalue"></button>
局限,就是要求浏览器必须支持XML,还有一个疑问.象例一中的<a dataFLd="weburl"><span dataFLd="weburl"></span></a>会显示得出<a href="http://blog.csdn.net/oyiboy">http://blog.csdn.net/oyiboy</a>的效果,如果要在不修改XML数据的情况下实现<a href="http://blog.csdn.net/oyiboy/?loginname=code">http://blog.csdn.net/oyiboy</a>的效果应该怎么作.请各位高人指点一下.
目前快速更换模板功能基本上是处于replace替换模板中的特殊标签后再显示出来,这样加大了许多ASP的处理时间,而且模板文件过长的话,加载到内存里进行处理时也是对服务器内存的一种考验.而XML中提供了一种DSO数据绑定功能.可以将标识替换操作交付给客户端.由于为了简化HTML模板的制作要求.所以,尽量简化HTML模板的XML技术含量是有必要的.
简单来说这个方式只是使用datasrc和dataFLd这两个HTML标签的属性实现的.废话就不多说了,一切实例说话.以下两个例子将说明一切.
例一:单个数据显示
以下是用ASP生成的XML数据岛.
<XML id="XMLdata">
<xData>
<name>coder</name>
<webname>轻灵自由的珍珠</webname>
<weburl>http://blog.csdn.net/oyiboy</weburl>
</xData>
</XML>
显示时的HTML原码:
<table datasrc=../../"#XMLdata" border=1>
<tr>
<td colspan=2>我的简单介绍</td>
</tr>
<tr>
<td>我的名称:</td>
<td><span dataFLd="name"></span></td>
</tr>
<tr>
<td>网站名称:</td>
<td><span dataFLd="webname"></span></td>
</tr>
<tr>
<td>网站地址:</td>
<td><a dataFLd="weburl"><span dataFLd="weburl"></span></a></td>
</tr>
</table>
例二:多条数据显示
以下是用ASP生成的XML数据岛.
<XML id="XMLdataList">
<xData>
<webList>
<webname>轻灵自由的珍珠</webname>
<weburl>http://blog.csdn.net/oyiboy</weburl>
</webList>
<webList>
<webname>Estyle(靳田)之狂想手扎</webname>
<weburl>http://blog.csdn.net/estyle</weburl>
</webList>
<webList>
<webname>最爱白菜</webname>
<weburl>http://blog.csdn.net/qunluo</weburl>
</webList>
</xData>
</XML>
显示时的HTML原码:
<table datasrc=../../"#XMLdataList" border=1>
<thead>
<tr>
<td colspan=2>我关注的Csdn Blog列表</td>
</tr>
<tr>
<td align="center">名称</td>
<td align="center">地址</td>
</tr>
</thead>
<tbody>
<tr>
<td><span dataFLd="webname"></span></td>
<td><a dataFLd="weburl"><span dataFLd="weburl"></span></a></td>
</tr>
</tbody>
</table>
(以上两个例子可以copy到一个文件内查看实际运行效果.)
注意例二HTML原码中的thead和tbody,在显示多条记录时会有用的,如果不明白他们有什么用的可以去掉它们后看看会有什么后果.
顺便说一句,图像和按键的数据绑定和超链接的绑定是差不多的,如:<img dataFLd="webimg">和<button dataFLd="buttonvalue"></button>
局限,就是要求浏览器必须支持XML,还有一个疑问.象例一中的<a dataFLd="weburl"><span dataFLd="weburl"></span></a>会显示得出<a href="http://blog.csdn.net/oyiboy">http://blog.csdn.net/oyiboy</a>的效果,如果要在不修改XML数据的情况下实现<a href="http://blog.csdn.net/oyiboy/?loginname=code">http://blog.csdn.net/oyiboy</a>的效果应该怎么作.请各位高人指点一下.