将html代码保存到xml文件中并用xsl转换输出到网页中的方法

      最近在做酒店的网上会员自助服务项目,其中有一项是介绍会员手册的。由于此项目需要做成产品,而每家酒店的会员手册又不相同,如何做到既能通用又能由用户进行个性化修改而不修改程序呢?
      最后采取了用xml的方法,将会员手册的数据保存到xml文件中,由于会员手册有可能会包含图片,表格等html数据,如果我的xml文件考虑得太细则不能通用,于是我将xml文件设置成以下格式:
<?xml version="1.0" encoding="utf-8" ?>
<handbook>
 <title>如何成为会员</title>
 <content>
  <![CDATA[
  <table>
   <tr>
    <td>1</td>
    <td>网上直接注册</td>
   </tr>
   <tr>
    <td>2</td>
    <td>前台直接办理</td>
   </tr>
   <tr>
    <td>3</td>
    <td>传真办理</td>
   </tr>
  </table>  
  ]]>
 </content>
</handbook>

只保留了一个标题和一个内容项,而内容项里需要注意的是包含有:<![CDATA[]]>标签,将需要包含的html代码直接放在其中即可。

在输出的时候进行xsl转换,转换时由于包含有html代码,所以需要将输出项的“禁止输出编码转换”设置为yes,这样在输出的时候就会将html代码直接输出,ie解析的时候就能正常显示相应的结果了。

xslt文件如下:
<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
 <table>
  <tr>
   <td align="center">
    <xsl:value-of select="handbook/title"/>
   </td>
  </tr>
  <tr>
   <td align="left">
    <xsl:value-of disable-output-escaping="yes" select="handbook/content"/>
   </td>
  </tr>
 </table>
</xsl:template>

</xsl:stylesheet>

在会员手册的详细页面中,放置一个XML的控件,设置其DocumentSource,TransformSource属性后调用databind方法即可。当用户想要更改会员手册内容的时候,只需要更改xml文件即可。程序无需再修改和编译。

posted @ 2007-02-11 10:16  Kevin163  阅读(2147)  评论(0编辑  收藏  举报