• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 47, 文章 - 10, 評論 - 8, 引用 - 0
            數據加載中……

            跟我學XSL(五)——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>

            <xsl:template?match="document">
            <TABLE?border="1"?cellspacing="0">
            <TH>姓名</TH><TH>英語</TH><TH>數學</TH><TH>化學</TH>
            <xsl:apply-templates?select="grade"/>
            </TABLE>
            </xsl:template>

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

            <xsl:template?match="name">
            <xsl:value-of/>
            </xsl:template>

            <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>


            o_xsl_8.JPG
             說明:在<xsl:choose>選擇中,從第一個<xsl:when>開始,逐個測試,直到滿足一個測試條件就將其中的內容輸出,不再測試后面的條件;如果不滿足任何一個條件,則輸出<xsl:otherwise>中的內容。

              標記對<xsl:when></xsl:when>與<xsl:otherwise></xsl:otherwise>中可嵌套<xsl:if>或<xsl:choose>。

            posted on 2006-09-14 11:05 編程之道 閱讀(366) 評論(0)  編輯 收藏 引用 所屬分類: web編程

            久久99精品国产99久久6| 久久亚洲国产最新网站| 久久久久人妻一区二区三区vr| 国产精品一区二区久久精品涩爱| 一本色道久久综合狠狠躁篇| 亚洲精品午夜国产va久久| 亚洲国产精品无码久久一区二区| 亚洲国产精品高清久久久| 国产精品一久久香蕉国产线看| 久久香蕉综合色一综合色88| 久久无码人妻精品一区二区三区| 狠狠色噜噜色狠狠狠综合久久| 日本久久久久久中文字幕| 久久久亚洲AV波多野结衣| 久久91精品国产91久久户| 久久久久久久女国产乱让韩| 粉嫩小泬无遮挡久久久久久| 国产精品一区二区久久精品无码 | 99久久99这里只有免费的精品| 国产成人无码精品久久久免费 | 久久综合综合久久综合| 久久这里的只有是精品23| 久久久久久亚洲AV无码专区| 亚洲精品乱码久久久久久不卡| 久久国产高潮流白浆免费观看| 国产精品久久久香蕉| 久久久久99精品成人片牛牛影视| 久久精品国产亚洲av日韩| 综合网日日天干夜夜久久 | 久久综合亚洲色一区二区三区| 久久精品国产精品国产精品污| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 免费精品99久久国产综合精品 | 亚洲综合婷婷久久| 99999久久久久久亚洲| 亚洲精品高清国产一线久久| 精品久久久久久中文字幕大豆网| 久久综合久久伊人| 亚洲国产精品无码久久九九| 天堂无码久久综合东京热| 热RE99久久精品国产66热|