跟我学XSL(5)XSL中的choose

长不大的李波

长不大的李波

2016-02-19 17:50

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的跟我学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规定的条件,如果在最后有此标记,则输出此标记中的内容。

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

  示例:

  此处以学生成绩单为例,要求按成绩的高低给出优秀( 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
english80/english
math90/math
chymest90/chymest
/grade
grade
name小花/name
english98/english
math70/math
chymest85/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
HEADTITLE成绩单/TITLE/HEAD
BODY
xsl:apply-templates select="document"/
/BODY
/HTML
/xsl:template

  xsl:template match="document"
TABLE border="1" cellspacing="0"
TH姓名/THTH英语/THTH数学/THTH化学/TH
xsl:apply-templates select="grade"/
/TABLE
/xsl:template

  xsl:template match="grade"
TR
TDxsl:apply-templates select="name"//TD
TDxsl:apply-templates select="english"//TD
TDxsl:apply-templates select="math"//TD
TDxsl:apply-templates select="chymest"//TD
/TR
/xsl:template

  xsl:template match="name"
xsl:value-of/
/xsl:template

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

  xsl:template match="english|math|chymest"
xsl:choose
xsl:when test=".[value()$gt$85]"优秀/xsl:when
xsl:when test=".[value()$gt$70]"一般/xsl:when
xsl:when test=".[value()$gt$60]"起格/xsl:when
xsl:otherwise不起格/xsl:otherwise
/xsl:choose
/xsl:template

  /xsl:stylesheet


上例在浏览器中的样子(IE5.0或更新版本)

  说明:在xsl:choose选择中,从第一个xsl:when开始,逐个测试,直到满足一个测试条件就将其中的内容输出,不再测试后面的条件;如果不满足任何一个条件,则输出xsl:otherwise中的内容。
  标记对xsl:when/xsl:when与xsl:otherwise/xsl:otherwise中可嵌套xsl:if或xsl:choose。

展开更多 50%)
分享

猜你喜欢

跟我学XSL(5)XSL中的choose

Web开发
跟我学XSL(5)XSL中的choose

跟我学XSL(9)XSL函数二

Web开发
跟我学XSL(9)XSL函数二

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

跟我学XSL(2)XSL入门

Web开发
跟我学XSL(2)XSL入门

跟我学XSL(7)XSL函数一

Web开发
跟我学XSL(7)XSL函数一

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

跟我学XSL(三)

Web开发
跟我学XSL(三)

跟我学XSL(四)

Web开发
跟我学XSL(四)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Access 2003开发者扩展工具集概述

Access 2003开发者扩展工具集概述

Win7如何使用系统保护功能恢复删除文件

Win7如何使用系统保护功能恢复删除文件
下拉加载更多内容 ↓