XSL中的IF,首先,介绍XSL元素>xsl:if<的语法结构: >xsl:if< 语法: >xsl:if expr="script-expression" language="language-name" test="pattern"< 属性: expr ──脚本语言表达式,计算结果为“真”或“假”;如果结果为“真”,且通过test,则在输出中显示其中内容(可省略此项属性)。 language ──expr属性中表达式的脚本语言类型,其取值与HTML标记SCRIPT的LANGUAGE属性的取值相同,缺省为“JScript”test ──源数据测试条件。 示例: 此处以一份报表为例,文件名为report.xml,其内容如下: >?xml version="1.0" encoding="GB2312"?< >?xml:stylesheet type="text/xsl" href="report.xsl"?< >document< >report< >class< 甲班 >/class<>q1<50>/q1<>q2<70>/q2< >q3<30>/q3<>q4<10>/q4<>/report< >report<>class< 乙班 >/class<>q1<20>/q1<>q2<30>/q2< >q3<40>/q3<>q4<50>/q4<>/report< >report<>class< 丙班 >/class<>q1<70>/q1<>q2<40>/q2< >q3<20>/q3<>q4<10>/q4<>/report< >/document< 我们采用XSL模板结合今天所学的>xsl:if<,为其编写一个XSL文档,要求季度产量小于等于20的用红色表示,文件名为report.xsl,内容如下: >?xml version="1.0" encoding="GB2312"?< >xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"< >xsl:template match="/"< >HTML<>HEAD<>TITLE<1999年生产统计>/TITLE<>/HEAD< >BODY<>xsl:apply-templates select="document ;"/<>/BODY< >/HTML< >/xsl:template< >xsl:template match="document"< >H3<1999年生产统计>/H3< >TABLE border="1" cellspacing="0"< >TH<班组>/TH<>TH< 一季度 >/TH<>TH< 二季度 >/TH< >TH< 三季度 >/TH<>TH< 四季度 >/TH< >xsl:apply-templates select="report"/< >/TABLE< >/xsl:template< >xsl:template match="report"< >TR< >TD<>xsl:value-of select="class"/<>/TD< >TD<>xsl:apply-templates select="q1"/<>/TD< >TD<>xsl:apply-templates select="q2"/<>/TD< >TD<>xsl:apply-templates select="q3"/<>/TD< >TD<>xsl:apply-templates select="q4"/<>/TD< >/TR< >/xsl:template< >xsl:template match="q1|q2|q3|q4"< >!--此处测试产量,如小于等于20则添加一STYLE属性color,其值为red(红色)--< >xsl:if test=".[value() $le$ 20]"< >xsl:attribute name="style"/xsl:attribute< >/xsl:if< >xsl:value-of/< >/xsl:template< >/xsl:stylesheet< 说明: q1|q2|q3|q4 ──标记q1、q2、q3、q3均用此模板确定输出 $le$ ──是关系运算符中的“小于等于”,其它关系有小于($lt$)、大于($gt$)、大于等于($ge$)、等于($eq$)、不等于($ne$)等 . ──表示引用当前标记 [ ] ──表示筛选,只有满足筛选条件的标记才能被选取 value() ──XSL函数,其他常用XSL函数有text()、end()、index()等。 下期,我们将学习XSL的另外三个元素,可对同一数据进行多次测试,根据不同条件产生相应输出。 |
Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=3465
XML技术的优势之一就在于数据输出的可选择性,即选择需要的数据输出。前面我们所讲到的选择模式语句:>xsl:for-each<、>xsl:value-of<及>xsl:apply-template<只是简单的选取通过”/”符号层层到达的节点,如果我们对XML数据不需要全部输出,而只需要其中的满足某条件的部分数据,“萝卜青菜、各取所需“,那么条件判断>xsl:if<与多条件判断>xsl:choose<及>xsl:when<则迎合了这种需要,如果你对程序设计熟悉的话,会觉得它们似曾相识。
324

被折叠的 条评论
为什么被折叠?



