xslt的简单使用[xml-->html]

简介:
XSLT命令[xml格式转换]
1.循环 <xsl:for-each...>
<xsl:for-each select="BookList/Item">
<tr>
<th align="left"> <xsl:value-of select=".//title" /></th>
<td><xsl:value-of select=".//categroy" /></td>
<td><xsl:value-of select=".//release-date" /></td>
<td><xsl:value-of select=".//author" /></td>
<td><xsl:value-of select="@price" /></td>
</tr>
</xsl:for-each>
2.排序 <xsl:sort...>
3.条件处理 <xsl:if...>或<xsl:choose...>或<xsl:when...>
4.名称模板 
<xsl:template name...<xsl:template name...>,<xsl:param...>
<xsl:with-param...>,<xsl:call-template...>
5.编号方式 <xsl:number value format...>

xml文档[Article.xml]
<? xml version="1.0" encoding="gb2312"  ?> 
<? xml-stylesheet type='text/xsl' href='Article.xsl' ?>
< Articles >
< Article >
< ArticleID >2897 </ ArticleID >
< Title >[分享]千万数量级分页存储过程(带效果演示) </ Title >
< Author >网络 </ Author >
< Abstract >[分享]千万数量级分页存储过程(带效果演示) </ Abstract >
< PostDateTime >2006-02-27 18:29:53 </ PostDateTime >
< Dots >7 </ Dots >
< ColumnURL >/web/Article/viewColumn.aspx?ColID=19 </ ColumnURL >
< ColumnID >19 </ ColumnID >
< ColumnName >SQL Server </ ColumnName >
< FileType >1 </ FileType >
< FilePath >resource/sql server/2006-02-27/20060227182953.htm </ FilePath >
< Editor >网络 </ Editor >
< EditDateTime >2006-02-27 18:29:53 </ EditDateTime >
< Content >
  [分享]千万数量级分页存储过程(带效果演示)效果演示:
http://www.cn5135.com/_App/Opportunities/QueryResult.aspx
CREATE PROCEDURE CN5135_SP_Pagination
/******************************************************************
千万数量级分页存储过程
*******************************************************************
参数说明:
1.Tables :表名称,视图
2.PrimaryKey :主关键字
3.Sort :排序语句,不带Order By 比如:NewsID Desc,OrderRows Asc
4.CurrentPage :当前页码
5.PageSize :分页尺寸
6.Filter :过滤语句,不带Where 
7.Group :Group语句,不带Group By
效果演示:http://www.cn5135.com/_App/Opportunities/QueryResult.aspx
***************************************************************/
(
@Tables varchar(1000),
@PrimaryKey varchar(100),
@Sort varchar(200) = NULL,
@CurrentPage int = 1,
@PageSize int = 10,
@Fields varchar(1000) = '*',
@Filter varchar(1000) = NULL,
@Group varchar(1000) = NULL
)
AS
/*默认排序*/
IF @Sort IS NULL OR @Sort = ''
SET @Sort = @PrimaryKey
DECLARE @SortTable varchar(100)
DECLARE @SortName varchar(100)
DECLARE @strSortColumn varchar(200)
>DECLARE @operator char(2)
DECLARE @type varchar(100)
DECLARE @prec int
/*设定排序语句.*/
IF CHARINDEX('DESC',@Sort) &gt;0
BEGIN
SET @strSortColumn = REPLACE(@Sort, 'DESC', '')
SET @operator = ' &lt;='
END
ELSE
BEGIN
IF CHARINDEX('ASC', @Sort) = 0
SET @strSortColumn = REPLACE(@Sort, 'ASC', '')
SET @operator = ' &gt;='
END
IF CHARINDEX('.', @strSortColumn)  &gt; 0
BEGIN
SET @SortTable = SUBSTRING(@strSortColumn, 0, CHARINDEX('.',@strSortColumn))
SET @SortName = SUBSTRING(@strSortColumn, CHARINDEX('.',@strSortColumn) + 1, LEN(@strSortColumn))
END
ELSE
BEGIN
SET @SortTable = @Tables
SET @SortName = @strSortColumn
END
SELECT @type=t.name, @prec=c.prec
FROM sysobjects o 
JOIN syscolumns c on o.id=c.id
JOIN systypes t on c.xusertype=t.xusertype
WHERE o.name = @SortTable AND c.name = @SortName
IF CHARINDEX('char', @type)  &gt; 0
SET @type = @type + '(' + CAST(@prec AS varchar) + ')'
DECLARE @strPageSize varchar(50)
DECLARE @strStartRow varchar(50)
DECLARE @strFilter varchar(1000)
DECLARE @strSimpleFilter varchar(1000)
DECLARE @strGroup varchar(1000)
/*默认当前页*/
IF @CurrentPage  &lt; 1
SET @CurrentPage = 1
/*设置分页参数.*/
SET @strPageSize = CAST(@PageSize AS varchar(50))
SET @strStartRow = CAST(((@CurrentPage - 1)*@PageSize + 1) AS varchar(50))
/*筛选以及分组语句.*/
IF @Filter IS NOT NULL AND @Filter != ''
BEGIN
SET @strFilter = ' WHERE ' + @Filter + ' '
SET @strSimpleFilter = ' AND ' + @Filter + ' '
END
ELSE
BEGIN
SET @strSimpleFilter = ''
SET @strFilter = ''
END
IF @Group IS NOT NULL AND @Group != ''
SET @strGroup = ' GROUP BY ' + @Group + ' '
ELSE
SET @strGroup = ''
/*执行查询语句*/
EXEC(
'
DECLARE @SortColumn ' + @type + '
SET ROWCOUNT ' + @strStartRow + '
SELECT @SortColumn=' + @strSortColumn + ' FROM ' + @Tables + @strFilter + ' ' +
@strGroup + ' ORDER BY ' + @Sort + '
SET ROWCOUNT ' + @strPageSize + '
SELECT ' + @Fields + ' FROM ' + @Tables + ' WHERE ' + @strSortColumn + @operator
+ ' @SortColumn ' + @strSimpleFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
'
)
GO
  <!-- <![CDATA[]]> -->
</ Content >
< Remarks >
< Remark  PostUserName ="guest"  PostDateTime ="2006-04-10 15:26:22" >
< PostUserNickName >
访客
</ PostUserNickName >
< Content >
OK!
</ Content >
</ Remark >
< Remark  PostUserName ="test"  PostDateTime ="2006-04-10 09:18:35" >
< PostUserNickName >
游客
</ PostUserNickName >
< Content >
good
</ Content >
</ Remark >
< Remark  PostUserName ="dream"  PostDateTime ="2006-04-10 08:45:35" >
< PostUserNickName >
dream
</ PostUserNickName >
< Content >
不错!
</ Content >
</ Remark >
< Remark  PostUserName ="no3"  PostDateTime ="2006-04-8 15:10:45" >
< PostUserNickName >
梦幻3号
</ PostUserNickName >
< Content >
看看
</ Content >
</ Remark >
< Remark  PostUserName ="admin"  PostDateTime ="2006-04-08 12:12:35" >
< PostUserNickName >

</ PostUserNickName >
< Content >
去试试
</ Content >
</ Remark >
< Remark  PostUserName ="Peter"  PostDateTime ="2006-03-15 16:12:35" >
< PostUserNickName >
peterzb
</ PostUserNickName >
< Content >

</ Content >
</ Remark >
</ Remarks >
</ Article >
</ Articles >

xslt文档[Article.xsl]
<? xml version="1.0" encoding="gb2312"  ?>
< xsl:stylesheet  version ="1.0"  xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >
< xsl:output  indent ="yes"  method ="html"   />
< xsl:template  match ="/" >
< html >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=GB2312"   />
  < title >
  < xsl:value-of  select ="Articles/Article/Title"   />
  </ title >
  < link  REL ='Stylesheet'  HREF ='/web/resource/bbs.css'  TYPE ='text/css'  />
  < style >
.title0 {font-size:17px;font-family:arial;font-weight:bold;text-decoration:none;color:#FFFFFF;}
A.title2:link {COLOR: #000000; TEXT-DECORATION: none}
A.title2:visited {COLOR: #000000; TEXT-DECORATION: none}
A.title2:active {COLOR: #ff0000; TEXT-DECORATION: none}
A.title2:hover {COLOR: #ff0000; TEXT-DECORATION: none}
DIV.post {
    BORDER-RIGHT: #6e8bde 1px solid; BORDER-TOP: #6e8bde 1px solid; MARGIN-BOTTOM: 3px; BORDER-LEFT: #6e8bde 1px solid; BORDER-BOTTOM: #6e8bde 1px solid; BACKGROUND-COLOR: #f0eedf
}
DIV.postTitle {
    PADDING-LEFT: 3px; FONT-WEIGHT: bolder; FONT-SIZE: 13px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #6e8bde 1px dashed; BACKGROUND-COLOR: #d6dff7
}
DIV.postText {
    PADDING-RIGHT: 10px; MARGIN-TOP: 10px; PADDING-LEFT: 10px; FONT-SIZE: 13px; MARGIN-BOTTOM: 10px; PADDING-BOTTOM: 5px; PADDING-TOP: 1px; BACKGROUND-COLOR: whitesmoke
}
</ style >
</ head >
< body >
< table  width ="800px"  border ="0"  cellpadding ="0"  cellspacing ="0" >
< tr >
< td  width ="97" >
     < href ="/web/Article/ViewColumn.aspx?Colid=7"  target ="_blank" >VB </ a >/ < href ="/web/Article/ViewColumn.aspx?Colid=11"  target ="_blank" >
        VBScript </ a >
</ td >
< td  width ="13%" >< href ="/web/Article/ViewColumn.aspx?Colid=12"  target ="_blank" >ASP </ a >/
     < href ="/web/Article/ViewColumn.aspx?Colid=13"  target ="_blank" >ASP.NET </ a >
</ td >
< td  width ="13%" >
     < href ="/web/Article/ViewColumn.aspx?Colid=5"  target ="_blank" >C# </ a >
</ td >
< td  width ="51" >
     < href ="/web/Article/ViewColumn.aspx?Colid=30"  target ="_blank" >J# </ a >
</ td >
< td  width ="15%" >
     < href ="/web/Article/ViewColumn.aspx?Colid=20"  target ="_blank" >ADO </ a >/ < href ="/web/Article/ViewColumn.aspx?Colid=21"  target ="_blank" >
        ADO.NET </ a ></ td >
< td  width ="17%" >
     < href ="/web/Article/ViewColumn.aspx?Colid=9"  target ="_blank" >JAVA </ a >/ < href ="/web/Article/ViewColumn.aspx?Colid=10"  target ="_blank" >
        JavaScript </ a ></ td >
< td  width ="11%" >
     < href ="/web/Article/ViewColumn.aspx?Colid=14"  target ="_blank" >HTML </ a >/ < href ="/web/Article/ViewColumn.aspx?Colid=15"  target ="_blank" >
        XML </ a ></ td >
< td  width ="12%" >
     < href ="/web/default.aspx"  target ="_blank" >返回首页 </ a ></ td >
</ tr >
< tr >
< td  width ="97" >< href ="/web/Article/ViewColumn.aspx?Colid=16"  target ="_blank" >CSS </ a ></ td >
< td >< href ="/web/Article/ViewColumn.aspx?Colid=3"  target ="_blank" >C </ a >/ < href ="/web/Article/ViewColumn.aspx?Colid=4"  target ="_blank" >
        C++ </ a ></ td >
< td >< href ="/web/Article/ViewColumn.aspx?Colid=6"  target ="_blank" >Delphi </ a ></ td >
< td  width ="51" >
     < href ="/web/Article/ViewColumn.aspx?Colid=30"  target ="_blank" >PHP </ a ></ td >
< td >
     < href ="/web/Article/ViewColumn.aspx?Colid=5"  target ="_blank" >.NET </ a ></ td >
< td >
     < href ="/web/resource/CSDN/CSDN论坛精华.html"  target ="_blank" >CSDN论坛精华 </ a ></ td >
< td >
     < href ="/web/Article/ViewColumn.aspx?Colid=19"  target ="_blank" >Database </ a ></ td >
< td >< href ="#"  onClick ="javascript:window.external.addFavorite('/web/Article.aspx', 'Dream .NET')" >加入收藏 </ a >
</ td >
</ tr >
< tr >
< td  width ="97" >
     < href ="/web/Note/notes.aspx?function=all"  target ="_blank" >GuestBook  </ a >
</ td >
< td >< href ="/web/bbs/bbs.aspx" >BBS </ a >
</ td >
< td >< href ="/web/Article/ViewColumn.aspx?Colid=22"  target ="_blank" >PowerBuilder </ a ></ td >
< td  width ="51" ></ td >
< td >< href ="/web/Article/ViewColumn.aspx?Colid=24"  target ="_blank" > Novel </ a ></ td >
< td ></ td >
< td >< href ="#"  onclick ="javascript:window.external.addFavorite('/web/Article.aspx', 'Dream .NET')" >
     </ A >
</ td >
< td >
     < href ="mailto:web-network@163.com?subject=About Dream .NET Web System" >联系我们 </ A ></ td >
</ tr >
< tr >
< td  width ="150px" >
< href ="/web/Article/postArticle.aspx" >< img  src ="/web/images/post.gif"  border ="0"  alt ="【发表文章】"   />【发表文章】 </ a >
</ td >
< td  width ="200px"  colspan ="2" >
< href ="/web/Article/postArticle.aspx" >< img  src ="/web/images/up.gif"  border ="0"   alt ="【上传文章】"   />【上传文章】 </ a >
</ td >  </ tr > 
</ table >
< table  width ="800px"  border ="0"  cellpadding ="0"  cellspacing ="0" >
< xsl:apply-templates  />
< tr >
< td  align ="center" >< href ="javascript:window.print()" >< img  src ="/web/images/print.jpg"  alt ='【打印此文】'  border ="0"   /></ a > 
      < href ="javascript:window.close();" >< img  src ="/web/images/close.jpg"  alt ='【关闭窗口】'  border ="0"   /></ a >
</ td >
</ tr >
</ table >
< table  width ="800px"  border ="0"  cellpadding ="0"  cellspacing ="0" >
     < tr >
     < td  valign ="top" >
     < hr  size ="1"  class ="hrc"  color ="blue" ></ hr >
     < table  align ="center"  cellpadding ="0"  cellspacing ="0"  ID ="Table1" >
     < tr >
     < td >
     < href ="/web/about.htm" >网站简介 </ a > |  < href ="/web/partner.htm" >合伙伙伴 </ a > |  < href ="/web/map.htm" >
    网站地图 </ a > |  < href ="/web/contract.aspx" >联系方式 </ a >< br ></ br >
     </ td >
     </ tr >
</ table >
</ td >
</ tr >
</ table >
</ body >
</ html >
</ xsl:template >
< xsl:template  match ="Articles" >
< xsl:apply-templates  />
</ xsl:template >
< xsl:template  match ="Article" >
< tr >
< td  height ="25"  align ="left" >
您当前所在位置为: < href ="/web/default.aspx" >首页 </ A >--- &gt; 
< href ="/web/Article/default.aspx" >
文章系统 </ A >--- &gt;
< xsl:element  name ="a" >
< xsl:attribute  name ="href" >
/web/Article/viewArticle.aspx?ColID= < xsl:value-of  select ="ColumnID"   />
<!--
<xsl:choose>
<xsl:when test="ColumnID='19'">
/web/Article/viewArticle.aspx?ColID=19
</xsl:when>
<xsl:when test="ColumnID='5'">
/web/Article/viewArticle.aspx?ColID=5
</xsl:when>
<xsl:otherwise>
/web/Article/viewArticle.aspx?ColID=0
</xsl:otherwise>
</xsl:choose>
-->
</ xsl:attribute >
< xsl:attribute  name ="title" >
< xsl:value-of  select ="ColumnName"   />
</ xsl:attribute >
< xsl:value-of  select ="ColumnName"   />
</ xsl:element >
--- &gt; < xsl:value-of  select ="Title"   /></ td >
</ tr >
< tr >
     < td  height ="25"  align ="center" >标题: < xsl:value-of  select ="Title"   />
    [点击数: < xsl:value-of  select ="Dots"   />] </ td >
</ tr >
< tr >
     < td  height ="25"  valign ="top"  align ="center" >作者: < xsl:value-of  select ="Author"   />
    [ < xsl:value-of  select ="PostDateTime"   />] </ td >
</ tr >
< tr >
     < td  height ="25"  valign ="top"  align ="center" >最近修改者: < xsl:value-of  select ="Editor"   />
    [ < xsl:value-of  select ="EditDateTime"   />] </ td >
</ tr >
< tr >
     < td  height ="25"  valign ="top"  align ="center"  class ="WithBreaks" >概述: < xsl:value-of  select ="Abstract"   /></ td >
</ tr >
< tr >
     < td  height ="25"  valign ="top"  align ="center" >正文如下: </ td >
</ tr >
< tr >
     < td >< pre >< xsl:value-of  select ="Content"   /></ pre ></ td >
</ tr >
< xsl:apply-templates  select ="/Articles/Article/Remarks"   />
</ xsl:template >
< xsl:template  match ="Remarks" >
< tr >< td >
< table  width ="800px"  border ="0"  cellpadding ="0"  cellspacing ="0" >
< th  align ="left" >< h3 >Feedback </ h3 ></ th >
< xsl:for-each  select ="Remark" >
< div  class ="post" >            
< tr >
    < div  class ="postTitle" >
    < td >
   回复人: < b >
    < font  color ="#3366CC" >
    < xsl:value-of  select ="@PostUserName"   />
   ( < xsl:value-of  select ="PostUserNickName"   />)
    </ font >
    </ b >
    </ td >
    < td  align ="right" >
    < font  color ="#000000" >
    < xsl:value-of  select ="@PostDateTime"   />
    </ font >   
   第 < font  color ="red" >< xsl:number  value ="position()"  format ="1" /></ font >
    </ td >
    </ div >
</ tr >
< tr >
< td  colspan ="2" >
< div  class ="postText" >
< xsl:value-of  select ="Content"   />
</ div >                
</ td >
</ tr >
</ div >
</ xsl:for-each >
</ table ></ td ></ tr >
</ xsl:template >
</ xsl:stylesheet >
效果图如下

效果图2
效果图1


本文转自peterzb博客园博客,原文链接:http://www.cnblogs.com/peterzb/archive/2006/04/24/383735.html,如需转载请自行联系原作者。

目录
相关文章
|
6月前
|
XML 前端开发 数据格式
请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
【2月更文挑战第22天】【2月更文挑战第67篇】请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
75 2
|
2月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
47 1
|
1月前
|
XML 前端开发 数据格式
使用 XSLT 显示 XML
10月更文挑战第1天
|
6月前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
【5月更文挑战第10天】BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
111 1
|
1月前
|
XML Web App开发 数据格式
HTML 页面显示 XML 数据
10月更文挑战第2天
|
6月前
|
XML 存储 JavaScript
html和xml
【4月更文挑战第10天】html和xml
48 1
|
5月前
|
XML 存储 前端开发
【前端】XML和HTML的区别详解
【前端】XML和HTML的区别详解
140 5
|
6月前
|
XML 存储 前端开发
【Web 前端】HTML、XHTML、XML 有什么区别?
【4月更文挑战第22天】【Web 前端】HTML、XHTML、XML 有什么区别?
|
XML JavaScript 前端开发
xslt转换XML为HTML遇到JS,CSS等问题
一开始把所有的内容放到一个模板里面,结果
792 0
下一篇
无影云桌面