首页 > 开发 > 综合 > 正文

浅析CMS内容管理系统的两种方案

2024-07-21 02:28:54
字体:
来源:转载
供稿:网友
  目前市面上成熟的cms产品有很多,无外乎两种解决方案:第一种就是用xsl+xml的方式来实现客户端具体数据;第二种是生成html或者shtml来实现。

  设计阶段的想法是,用xsl来实现文章和内容的模版,用xml来存储数据,生成静态的html或shtml。到实际应用中发现了html转换的问题,用xsl+xml生成html时,xml内容中不需要进行转化的内容,使用cdata,在xsl文件中引用部分使用disable-output-escaping="yes",生成html时照样将html代码进行了解析,例如<变成了<等等,我们还要对此再进行一边转码,但是还要考虑到文章内容中如果存在<的问题,岂不乱套了。当然解决方法有,例如加上自己定制的特殊标识,然后再转码,这样生成html就不会有问题了。

  cms的目的就是减轻服务器的负担,自然我们可以把负载加到客户端上面,如客户端浏览器解析xsl+ xml,但是考虑到有的浏览器不支持这种形式,绝大多数都是可以解析的,如internet explorer、netscape、firefox、mozilla、opera等。

  举个例子:

  xsl文件:test.xsl

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0">
<xsl:output method="html" />
<xsl:template match="/article">
 <table cellspacing="1" cellpadding="1" width="200" border="1">
  <tbody>
   <tr>
    <td><xsl:value-of select="title" /></td>
    <td><xsl:value-of select="click" /></td>
   </tr>
   <tr>
    <td><xsl:value-of select="date" /></td>
    <td><xsl:value-of select="author" /></td>
   </tr>
   <tr>
    <td><xsl:value-of select="content" disable-output-escaping="yes" /></td>
    <td>测试by glandjacky</td>
   </tr>
  </tbody>
</table>
</xsl:template>
</xsl:stylesheet>

  xml文件:view.xml

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<article>
 <id>47</id>
 <title>测试xml</title>
 <icategoryid>11</icategoryid>
 <key>测试xml</key>
 <content>
  <![cdata[
  <table cellspacing="1" cellpadding="1" width="200" border="1">
   <tbody>
    <tr>
     <td>测试xml</td>
     <td> </td>
    </tr>
    <tr>
     <td>测试xml</td>
     <td> </td>
    </tr>
    <tr>
     <td>测试xml</td>
     <td> </td>
    </tr>
   </tbody>
  </table>
 ]]>
</content>
<author>glandjacky</author>
<date>2006-06-20 11:38:50.823</date>
<updateby>have not update user</updateby>
<updatetime>have not update time</updatetime>
<click>0</click>
<fileurl>/star/boke/1150774719245/1150774719245.htm</fileurl>
<imageurl>/star/boke/1150774719245/images/测试2</imageurl>
</article>

  如果浏览器支持的话,可以直接在浏览器输入xml文件的地址,看到浏览器解析过的html文件了。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表