|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你觉得学习.NET怎么样,我懂的少,问的可能很幼稚,见笑了啊:)内容办理体系 上篇讲到了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
<?xmlversion="1.0"encoding="UTF-8"?>
<xsl:stylesheetxmlns:xsl="http://www.w3.org/1999/XSL/Transform"version="1.0">
<xsl:outputmethod="html"/>
<xsl:templatematch="/article">
<tablecellspacing="1"cellpadding="1"width="200"border="1">
<tbody>
<tr>
<td><xsl:value-ofselect="title"/></td>
<td><xsl:value-ofselect="click"/></td>
</tr>
<tr>
<td><xsl:value-ofselect="date"/></td>
<td><xsl:value-ofselect="author"/></td>
</tr>
<tr>
<td><xsl:value-ofselect="content"disable-output-escaping="yes"/></td>
<td>测试ByGlandJacky</td>
</tr>
</tbody>
</table>
</xsl:template>
</xsl:stylesheet>
起首必需先获得要转化为XSL代码的字符串StringxslContent
利用dom4j来完成XSL
//XSL代码的头
StringXSL_HEAD="<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEroot[<!ENTITYnbsp" ">]><xsl:stylesheetxmlns:xsl="http://www.w3.org/1999/XSL/Transform"version="1.0"><xsl:outputmethod="html"/><xsl:templatematch="/root">";
//XSL代码的尾
StringXSL_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><metacontent="text/html;charset=utf-8"http-equiv="content-type"/>"+xslContent+"</HTML>"+XSL_END;
}
//创立documentimportorg.dom4j.DocumentHelper;importorg.dom4j.Document;
Documentdocument=DocumentHelper.parseText(xslContent);
增补创立完document以后必要三个参数
・创立好的Documentdocument
・要创立XSL文件的地点Stringpath
・创立文件的编码格局StringcharsetName
document.setXMLEncoding(charsetName);
FileOutputStreamfos=newFileOutputStream(path);
OutputStreamWriterosw=newOutputStreamWriter(fos,charsetName);
document.write(osw);
osw.close();
fos.close();
如许XSL文件就创立好了。C#中有两处地方用到new关键字,第一处也是最常见的一处是用在调用构造函数的时候,这种情况也是大家见的最多的一种。另一处是用在派生类中,作用有隐藏成员,切断继承关系等,相信第二处的用法大家明显要比第一处生疏。 |
|