当前位置: 代码网 > it编程>网页制作>Xml > 选择模式 - XSL教程 - 2

选择模式 - XSL教程 - 2

2024年05月18日 Xml 我要评论
什么是选择模式 选择模式语句将数据从xml中提取出来,是一种简单获得数据的方法,这几个标记都有一个select属性,选取xml中特定的结点名的数据 注意,每个xsl文件都需要导入xsl的命名空间,ht
什么是选择模式
选择模式语句将数据从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>
        <name>5do8</name>
        <id>1</id>
        <professional>.net,php design</professional>
    </user>
    <user>
        <name>cjjer</name>
        <id>2</id>
        <professional>database 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将所选节点内容进行排序
按大小写排序 
<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"> 也可使得输出学生时按名字排序。 

3、<xsl:xsl:apply-templates>
xsl:apply-templates是应用已经定义的模板
  例如:<xsl:apply-template select="users/user">……</xsl:apply-template>

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

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com