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)
>0
BEGIN
SET @strSortColumn = REPLACE(@Sort, 'DESC', '')
SET @operator = '
<='
END
ELSE
BEGIN
IF CHARINDEX('ASC', @Sort) = 0
SET @strSortColumn = REPLACE(@Sort, 'ASC', '')
SET @operator = '
>='
END
IF CHARINDEX('.', @strSortColumn)
> 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)
> 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
< 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"
>
<
a
href
="/web/Article/ViewColumn.aspx?Colid=7"
target
="_blank"
>VB
</
a
>/
<
a
href
="/web/Article/ViewColumn.aspx?Colid=11"
target
="_blank"
>
VBScript
</
a
>
</
td
>
<
td
width
="13%"
><
a
href
="/web/Article/ViewColumn.aspx?Colid=12"
target
="_blank"
>ASP
</
a
>/
<
a
href
="/web/Article/ViewColumn.aspx?Colid=13"
target
="_blank"
>ASP.NET
</
a
>
</
td
>
<
td
width
="13%"
>
<
a
href
="/web/Article/ViewColumn.aspx?Colid=5"
target
="_blank"
>C#
</
a
>
</
td
>
<
td
width
="51"
>
<
a
href
="/web/Article/ViewColumn.aspx?Colid=30"
target
="_blank"
>J#
</
a
>
</
td
>
<
td
width
="15%"
>
<
a
href
="/web/Article/ViewColumn.aspx?Colid=20"
target
="_blank"
>ADO
</
a
>/
<
a
href
="/web/Article/ViewColumn.aspx?Colid=21"
target
="_blank"
>
ADO.NET
</
a
></
td
>
<
td
width
="17%"
>
<
a
href
="/web/Article/ViewColumn.aspx?Colid=9"
target
="_blank"
>JAVA
</
a
>/
<
a
href
="/web/Article/ViewColumn.aspx?Colid=10"
target
="_blank"
>
JavaScript
</
a
></
td
>
<
td
width
="11%"
>
<
a
href
="/web/Article/ViewColumn.aspx?Colid=14"
target
="_blank"
>HTML
</
a
>/
<
a
href
="/web/Article/ViewColumn.aspx?Colid=15"
target
="_blank"
>
XML
</
a
></
td
>
<
td
width
="12%"
>
<
a
href
="/web/default.aspx"
target
="_blank"
>返回首页
</
a
></
td
>
</
tr
>
<
tr
>
<
td
width
="97"
><
a
href
="/web/Article/ViewColumn.aspx?Colid=16"
target
="_blank"
>CSS
</
a
></
td
>
<
td
><
a
href
="/web/Article/ViewColumn.aspx?Colid=3"
target
="_blank"
>C
</
a
>/
<
a
href
="/web/Article/ViewColumn.aspx?Colid=4"
target
="_blank"
>
C++
</
a
></
td
>
<
td
><
a
href
="/web/Article/ViewColumn.aspx?Colid=6"
target
="_blank"
>Delphi
</
a
></
td
>
<
td
width
="51"
>
<
a
href
="/web/Article/ViewColumn.aspx?Colid=30"
target
="_blank"
>PHP
</
a
></
td
>
<
td
>
<
a
href
="/web/Article/ViewColumn.aspx?Colid=5"
target
="_blank"
>.NET
</
a
></
td
>
<
td
>
<
a
href
="/web/resource/CSDN/CSDN论坛精华.html"
target
="_blank"
>CSDN论坛精华
</
a
></
td
>
<
td
>
<
a
href
="/web/Article/ViewColumn.aspx?Colid=19"
target
="_blank"
>Database
</
a
></
td
>
<
td
><
a
href
="#"
onClick
="javascript:window.external.addFavorite('/web/Article.aspx', 'Dream .NET')"
>加入收藏
</
a
>
</
td
>
</
tr
>
<
tr
>
<
td
width
="97"
>
<
a
href
="/web/Note/notes.aspx?function=all"
target
="_blank"
>GuestBook
</
a
>
</
td
>
<
td
><
a
href
="/web/bbs/bbs.aspx"
>BBS
</
a
>
</
td
>
<
td
><
a
href
="/web/Article/ViewColumn.aspx?Colid=22"
target
="_blank"
>PowerBuilder
</
a
></
td
>
<
td
width
="51"
></
td
>
<
td
><
a
href
="/web/Article/ViewColumn.aspx?Colid=24"
target
="_blank"
> Novel
</
a
></
td
>
<
td
></
td
>
<
td
><
A
href
="#"
onclick
="javascript:window.external.addFavorite('/web/Article.aspx', 'Dream .NET')"
>
</
A
>
</
td
>
<
td
>
<
A
href
="mailto:web-network@163.com?subject=About Dream .NET Web System"
>联系我们
</
A
></
td
>
</
tr
>
<
tr
>
<
td
width
="150px"
>
<
a
href
="/web/Article/postArticle.aspx"
><
img
src
="/web/images/post.gif"
border
="0"
alt
="【发表文章】"
/>【发表文章】
</
a
>
</
td
>
<
td
width
="200px"
colspan
="2"
>
<
a
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"
><
a
href
="javascript:window.print()"
><
img
src
="/web/images/print.jpg"
alt
='【打印此文】'
border
="0"
/></
a
>
<
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
>
<
a
href
="/web/about.htm"
>网站简介
</
a
> |
<
a
href
="/web/partner.htm"
>合伙伙伴
</
a
> |
<
a
href
="/web/map.htm"
>
网站地图
</
a
> |
<
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"
>
您当前所在位置为:
<
A
href
="/web/default.aspx"
>首页
</
A
>---
>
<
A
href
="/web/Article/default.aspx"
>
文章系统
</
A
>---
>
<
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
>
---
>
<
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
>
效果图如下
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]




















































































































































































xslt文档[Article.xsl]






















































































































































































































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