XSL教程:了解XSL的选择模式

2016-02-19 19:03 13 1 收藏

下面这个XSL教程:了解XSL的选择模式教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!

【 tulaoshi.com - Web开发 】

什么是选择模式

选择模式语句将数据从XML中提取出来,是一种简单获得数据的方法,这几个标记都有一个select属性,选取XML中特定的结点名的数据

注意,每个xsl文件都需要导入xsl的命名空间,http://www.w3.org/TR/WD-xsl,例如在xml头声明之后加入:
p xmlns:xsl="http://www.w3.org/TR/WD-xsl"

1、xsl:for-each

这个语句是逐个(select)选择某条件,应用条件。例如,有如下数据库的用户列表:

?xml version="1.0" encoding="GB2312"?
Users
User
Name5do8/Name
ID1/ID
Professional.NET,PHP Design/Professional
/User
User
Namecjjer/Name
ID2/ID
ProfessionalDataBase Manage/Professional
/User
/Users

需要只输出全部的Name列,这里有两个问题:

1:需要把每个User节点下面的数据都选择,就是需要定位到User节点,我们使用for-each下面的select。

2:需要选择Name节点,我们使用value-of下面的select。

建立xsl文件:

?xml version="1.0" encoding="GB2312"?
p xmlns:xsl="http://www.w3.org/TR/WD-xsl"
xsl:for-each select="Users"
BODY
xsl:for-each select="User"
xsl:value-of select="Name" /hr /
/xsl:for-each
/BODY
/xsl:for-each/p

保存为UserList_for-each.xsl.在xml文件第二行增加:

?xml:stylesheet type="text/xsl" href="UserList_for-each.xsl"?

在IE5+以上的浏览器中效果可见。

for-each还支持排序,order-by语句,它的语法是以分号(;)分隔、作为排序标准的列表。在列表元素前添加加号(+)表示按此标记的内容以升序排序,添加减号(-)表示逆序排序。作为一种简化的表示就是,排序标准列表就是由select规定的标记的子标记的序列,每个标记之间以(;)分隔。

2、xsl:value-of

value-of是选择当前节点的值

例如如上的例子中选择了
xsl:value-of select="Name" /
就是选择Name节点的值。

xsl:sort排序处理

对于用xsl:for-each或xsl:apply-templates匹配的节点,可使用xsl:sort将所选节点内容进行排序

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

按大小写排序
xsl:sort case-order="upper-first" select="@id"/ 以id为关键字按大写优先排序
xsl:sort case-order="lower-first" select="@id"/ 以id为关键字按小写优先排序
按字母顺序排序
xsl:sort order="ascending" select="@id "/ 以id为关键字按字母升序排序
xsl:sort order="descending" select="@id "/ 以id为关键字按字母降序排序
按数据类型排序
xsl:sort data-type="text" select="@id"/ 以id为关键字按文本类型排序,如对于一组id数据101,2,44,305 来说,排序结果是101,2,305,44
xsl:sort data-type="number" select="@id"/ 以id为关键字按数据类型排序,上面一组数据的排序结果是2,44,101,305
另外,还有一种指定排序的方法,就是在前面学生花名册例中所使用的order-by: xsl:for-each select="student" order-by="name" 也可使得输出学生时按名字排序。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

3、xsl:xsl:apply-templates

xsl:apply-templates是应用已经定义的模板

例如:
xsl:apply-template select="Users/User"……/xsl:apply-template

如上三者,都有共同的使用方法,就是必须要Select语句选择,关于Select语句的语法,就是XPath,关于XPath的使用规范,将在下一讲中详细描述。

来源:http://www.tulaoshi.com/n/20160219/1619901.html

延伸阅读
标签: Web开发
本期学习XSL样式方法,即可用于XSL元素xsl:for-each、xsl:value-of、xsl:template的select属性、xsl:apply-templates的match属性、xsl:if、xsl:when的test属性中,对元素的范围进行筛选,从而提供更大的灵活性。 XML与DHTML(动态HTML)一样,这些节点都是一个个对象,而且这些对象都是有层次的,从根节点开始构成一颗层次清淅的树状...
标签: Web开发
 XSL(eXtensible Stylesheet Language,可扩展样式语言)是为XML文件定义的一种标识语言,它将提供远远超过CSS的强大功能,如将元素再排序等。实际上简单的XML已可被CSS所解释,然而复杂的高度结构化的XML数据或XML文档则只能依赖于XSL极强的格式化的能力而现给用户。     XSL以包含了一套元素集的XML语法规范而定义,该...
标签: Web开发
上期我们讲到用CSS(层叠样式表)来格式化XML文档,其效果并不很令人满意。实际上CSS用来格式化HTML标记比较合适些,只是因为它简单才在上例中采用。 XML在更多的时候只是一种数据文件,怎样将它变为我们日常所看到的HTML格式那样的文件呢?如果我们将XML文件比作结构化的原料的话,那么XSL就好像"筛子"与"模子",...
标签: Web开发
XML技术的优势之一就在于数据输出的可选择性,即选择需要的数据输出。前面我们所讲到的选择模式语句:xsl:for-each、xsl:value-of及xsl:apply-template只是简单的选取通过"/"符号层层到达的节点,如果我们对XML数据不需要全部输出,而只需要其中的满足某条件的部分数据,"萝卜青菜、各取所需",那么条件判断xsl:if与多...
标签: Web开发
表一、运算符与特殊字符  运算符描述 / 选择子元素,返回左侧元素的直接子元素;如果"/"位于最左侧表示选择根结点的直接子元素 // 递归下降,不论深度,搜索指定的元素;如果位于最左侧表示从根结点出发递归下降搜索指定元素 . 表示当前元素 * 通配符,选择任意元素,不考虑名字 @ 取得属性值,作为属...

经验教程

756

收藏

19
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部