跟我学XSL(5)XSL中的choose

    上期我们学习了XSL元素<xsl:if>,已能通过测试XML数据的值来决定不同的输出形式,不知你尝试过没有,实际上<xsl:for-each>也可部分实现<xsl:if>的功能,但有时,我们希望对同一数据同时测试多个条件,根据不同条件输出相应结果。当然,我们可以用if,假如我们只有if可用的话。幸好我们有一个更好的选择,那就是用<xsl:choose>。下面介绍相关元素的语法:
   <xsl:choose>
   语法:<xsl:choose>
   属性:无,表示一个多选测试的开始

<xsl:when>
   语法:
<xsl:when expr="script-expression" language="language-name" test="pattern">
   属性:
   expr ── 脚本语言表达式,计算结果为"真"或"假";如果结果为"真",且通过test,则在输出中显示其中内容(可省略此项属性)。
   language ── expr属性中表达式的脚本语言类型,其取值与HTML标记SCRIPT的LANGUAGE属性的取值相同,缺省为"JScript"。
   test ── 源数据测试条件。

<xsl:otherwise>
   语法:<xsl:otherwise>
   属性:无,在一个多选测试中,如果没有不满足<xsl:when>规定的条件,如果在最后有此标记,则输出此标记中的内容。

示例:

此处以学生成绩单为例,要求按成绩的高低给出优秀( >85)、一般(70~85)、及格(60~69)、不及格(< 60),而不是显示分数。其中成绩单的XML文档(文件名:grade.xml)如下:
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="grade.xsl"?>
<document>
<grade>
<name>大胖</name>
<english>80</english>
<math>90</math>
<chymest>90</chymest>
</grade>
<grade>
<name>小花</name>
<english>98</english>
<math>70</math>
<chymest>85</chymest>
</grade>
</document>

为实现按分数分等级显示,其XSL文档(文件名:grade.xsl)内容如下:

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML>
<HEAD><TITLE>成绩单</TITLE></HEAD>
<BODY>
<xsl:apply-templates select="document"/>
</BODY>
</HTML>
</xsl:template>

时间: 2024-08-03 00:09:46

跟我学XSL(5)XSL中的choose的相关文章

跟我学xml和XSL

xml 跟我学xml和XSL第一个XML文档 随着Internet的发展,越来越多的信息进入互联网,信息的交换.检索.保存及再利用等迫切的需求使HTML这种最常用的标记语言已越来越捉襟见肘.HTML将数据内容与表现融为一体,可修改性.数据可检索性差,而XML借鉴了HTML与数据库.程序语言的优点,将内容与表现分开,不仅使检索更为方便,更主要的是用户之间数据的交换更加方便,可重用性更强. XML是一种元标记语言,没有许多固定的标记,为WEB开发人员提供了更大的灵活性.当我们使用HTML时,标记只是

跟我学XSL(2)XSL入门

 上期我们讲到用CSS(层叠样式表)来格式化XML文档,其效果并不很令人满意.实际上CSS用来格式化HTML标记比较合适些,只是因为它简单才在上例中采用. XML在更多的时候只是一种数据文件,怎样将它变为我们日常所看到的HTML格式那样的文件呢?如果我们将XML文件比作结构化的原料的话,那么XSL就好像"筛子"与"模子",筛子选取自己需要的原料,这些原料再通过模子形成最终的产品:HTML. 这个模子大致是这样:我们先设计好表现的页面,再将其中需要从XML中获取数据来

跟我学XSL(7)XSL函数一

本期学习XSL样式方法,即可用于XSL元素<xsl:for-each>.<xsl:value-of>.<xsl:template>的select属性.<xsl:apply-templates>的match属性.<xsl:if>.<xsl:when>的test属性中,对元素的范围进行筛选,从而提供更大的灵活性. XML与DHTML(动态HTML)一样,这些节点都是一个个对象,而且这些对象都是有层次的,从根节点开始构成一颗层次清淅的树状结

我是学android 在studio中连接网络数据库

问题描述 我是学android 在studio中连接网络数据库 我刚入职三天,写注册功能,存新用户到数据库,公司PHP的哥们提供了一个网络数据库接口http://192.168.1.27/phpmyadmin/index.php,数据库名diancan, 表名members,账号和密码我也有,我怎么才能连接到这个数据库?求大神给出代码 感激不尽,不想失业 解决方案 这是phpadmin.不是数据库连接 昨天有个和你一样的人也要失业了,问了一样的问题,在姐姐的帮助下成功再就业. 解决方案二: 你不

跟我学XSL(3)XSL模板与匹配模式

    经过前几日的学习,我们学习了XHTML文档的编写和以及三个XSL元素,已能编写相当灵活的XSL文档,今天将学习的是XSL模板的编写.我们都知道,短的文档.程序十分好读,但当规模增大后,其复杂性也以更快的速度增加. 前面我们学了<xsl:for-each>.<xsl:value-of>等,可以用它们对XML数据实现简单的格式化输出,但如果遇到比较复杂的XML格式输出,将XSL按照要求依次写下来的话,一是设计困难,可扩展性差,不利于人员之间的分工协作:另则,可修改性很差,可能会

跟我学XSL(6)XSL的运算符

表一.运算符与特殊字符  运算符 描述 / 选择子元素,返回左侧元素的直接子元素:如果"/"位于最左侧表示选择根结点的直接子元素 // 递归下降,不论深度,搜索指定的元素:如果位于最左侧表示从根结点出发递归下降搜索指定元素 . 表示当前元素 * 通配符,选择任意元素,不考虑名字 @ 取得属性值,作为属性名的前缀 @* 通配符,选择任意属性,不考虑名字 : 名字作用范围分隔符,将名字作用范围前缀与元素或属性名分隔开来 !* 在相关节点上应用指定方法 ()* 分组,明确指定优先顺序 []

跟我学XSL(9)XSL函数二

本期介绍多个XSL对于VBScript.JScript增加的方法.属性,以充分发挥XML的优势,用于<xsl:script>.<xsl:eval>标记内表达式的编写或<xsl:if>.<xsl:when>的expr属性. 一.absoluteChildNumber 含义:返回结点相对于它所有的兄弟(不论名字是否相同)的序号. 语法:absoluteChildNumber(node) 参数:node ── 对象,欲返回编号的结点. 示例: 1.假定文档结构为:

看实例学VFP:对表中记录进行定位与查找操作

在VFP中操作表记录时,既可以使用sql语句,也可以使用内置的append.replace.delete/pack/zap等命令并配合一些记录指针定位和数据排序方面的命令及函数来使用,而在vb/vb.net中,使用ADO/ADO.NET的属性和方法就可以了.VFP象C语言一样灵活,但或许正是由于这一点,让许多刚接触她的人感觉无处下手并进而不喜欢她.VFP象是一位其貌不扬.性格内向的淑女,不是每个人都会喜欢她,只有了解她的优点的人才会爱上她. 话说得有点跑题了,现在言归正传.从本文开始会给出一些使

教你学Windows 7附件中的老家伙

朋友,你还在坚守"XP"吗?你还在忍受"Vista"吗?为什么不试试Windows 7?只要你曾领略她卓越的性能.华丽的外表,就一定会为她的魅力所折服.怎么?对Wndows 7不了解?不知道怎么使用?没关系,IT168软件群组为您准备了<七仔教你学Windows 7>系列教程.该教程共分为初级篇.中级篇.高级篇三部分,通过这个系列教程我们可爱的七仔将教你一步一步学好Windows 7. 在Windows操作系统中,我们知道开始菜单的"附件&qu