您现在的位置: 天下网吧 >> 网吧天地 >> 天下码农 >> 微信小程序 >> 正文

谈谈CMS内容管理系统的两种方案:XSL+XML和HTML (二)

2010-12-22vczx佚名

  上篇讲到了XSL和XML如何在客户端浏览。也是CMS内容管理系统内容发布的一种形式,即XSL(模版)+XML(内容)。

    但是现实情况是由客户端浏览器不支持,这样做还会给服务器造成一定的负载,能够减轻服务器服务负载的最好方法就是完全实现静态页面的内容访问机制,当然这样就需要再次将XSL和XML生成HTML或者SHTML。

    呵呵,这就是所说的CMS内容管理系统内容发布的第二种形式HTML或者SHTML。

    在Java中有很多方式来实现,首先是先产生XSL文件,即模版文件。

    当然我们首先要统一编码,所有的文件编码都为“UTF-8”,符合全球化标准。即产生的文件编码格式为“UTF-8”,数据库编码格式为“UTF-8”,自动生成的XSL文件、XML文件、HTML文件、SHTML文件的格式都必须为“UTF-8”,当然还包括文件内部的声明也都必须为“UTF-8”,当然请不要搞混了文件编码格式和文件内部声明,我觉得初学者最容易搞混。文件编码格式就是文件的属性,文件本身是用什么编码格式生成的,而文件内部声明指的是文件内容中也需要制定编码。

    目的当然很简单且明确,防止出现大家头疼的乱码~

    下面接着谈谈CMS内容管理系统的两种方案:XSL+XML和HTML (一)的例子,说明XSL模版文件的Java实现。

  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>

首先必须先取得要转化为XSL代码的字符串String xslContent

使用dom4j来实现XSL

//XSL代码的头

String XSL_HEAD = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE root [<!ENTITY nbsp \"&#160;\">]><xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"><xsl:output method=\"html\" /><xsl:template match=\"/root\">";

//XSL代码的尾
 String XSL_END = "</xsl:template></xsl:stylesheet>";


//添加模版文件的中HTML代码       
        if (xslContent.substring(0,6).toUpperCase().equals("<HTML>")){
            xslContent = XSL_HEAD + xslContent + XSL_END;
        }else{
            xslContent = XSL_HEAD +"<HTML><meta content=\"text/html;charset=utf-8\" http-equiv=\"content-type\" />"+ xslContent+ "</HTML>" + XSL_END;
        }
       
// 创建document      import org.dom4j.DocumentHelper; import org.dom4j.Document;
        Document document = DocumentHelper.parseText(xslContent);

补充创建完document之后

需要三个参数

创建好的Document document

要创建XSL文件的地址String path

创建文件的编码格式String charsetName

            document.setXMLEncoding(charsetName);
            FileOutputStream fos = new FileOutputStream(path);
            OutputStreamWriter osw = new OutputStreamWriter(fos, charsetName);
            document.write(osw);
            osw.close();
            fos.close();

 

  这样XSL文件就创建好了。

欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛 https://bbs.txwb.com

关注天下网吧微信/下载天下网吧APP/天下网吧小程序,一起来超精彩

本文来源:vczx 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系邮箱:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧 网吧天下