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

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

效果图2
效果图1


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值