xsl:choose: check the value of an attribute : choose « XSLT stylesheet « XML Tutorial

XML Tutorial
1. Introduction
2. Namespace
3. XML Schema
4. XPath
5. XSLT stylesheet
Java
XML
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
C# / C Sharp
C# / CSharp Tutorial
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
XML Tutorial » XSLT stylesheet » choose 
5. 43. 3. xsl:choose: check the value of an attribute
File: Data.xml
<?xml version = "1.0"?>
<planner>
   <year value = "2000">

      <date month = "7" day = "15">
         <note time = "1430">meeting</note>
         <note time = "1620">course</note>
      </date>

      <date month = "7" day = "4">
         <note>Independence Day</note>
      </date>

      <date month = "7" day = "20">
         <note time = "0900">Meeting A</note>
      </date>

      <date month = "7" day = "20">
         <note time = "1900">Meeting B</note>
      </date>

      <date month = "7" day = "20">
         <note time = "1300">Meeting C</note>
      </date>

   </year>

</planner>


File: Transform.xslt
<?xml version = "1.0"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">
    <html>

      <body>
        Appointments
        <br />
        <xsl:apply-templates select="planner/year" />
      </body>

    </html>
  </xsl:template>

  <xsl:template match="year">
    <strong>Year:</strong>
    <xsl:value-of select="@value" />
    <br />
    <xsl:for-each select="date/note">
      <xsl:sort select="../@day" order="ascending"
        data-type="number" />
      <strong>
        Day:
        <xsl:value-of select="../@day" />
        /
        <xsl:value-of select="../@month" />
      </strong>
      <br />

      <xsl:choose>

        <xsl:when
          test="@time &gt; '0500' and @time &lt; '1200'">
          Morning (
          <xsl:value-of select="@time" />
          ):
        </xsl:when>

        <xsl:when
          test="@time &gt; '1200' and @time &lt; '1700'">
          Afternoon (
          <xsl:value-of select="@time" />
          ):
        </xsl:when>

        <xsl:when
          test="@time &gt; '1200' and @time &lt; '1700'">
          Evening (
          <xsl:value-of select="@time" />
          ):
        </xsl:when>

        <xsl:when
          test="@time &gt; '1200' and @time &lt; '1700'">
          Night (
          <xsl:value-of select="@time" />
          ):
        </xsl:when>

        <xsl:otherwise>Entire day:</xsl:otherwise>

      </xsl:choose>

      <xsl:value-of select="." />

      <xsl:if test=". = ''">n/a</xsl:if>

      <br />
    </xsl:for-each>

  </xsl:template>

</xsl:stylesheet>

Output:

<html>
   <body>
              Appointments
              <br><strong>Year:</strong>2000<br><strong>
                 Day:
                 4
                 /
                 7</strong><br>Entire day:Independence Day<br><strong>
                 Day:
                 15
                 /
                 7</strong><br>
                Afternoon (
                1430
                ):
              Doctor's appointment<br><strong>
                 Day:
                 15
                 /
                 7</strong><br>
                Afternoon (
                1620
                ):
              course<br><strong>
                 Day:
                 20
                 /
                 7</strong><br>
                Morning (
                0900
                ):
              Meeting A<br><strong>
                 Day:
                 20
                 /
                 7</strong><br>Entire day:Party at Joe's<br><strong>
                 Day:
                 20
                 /
                 7</strong><br>
                Afternoon (
                1300
                ):
              Meeting C<br></body>
</html>
5. 43. choose
5. 43. 1. choose statement
5. 43. 2. xsl:choose, xsl:when and xsl:otherwise
5. 43. 3. xsl:choose: check the value of an attribute
5. 43. 4. choose with otherwise statement
5. 43. 5. when test="position() mod 4 = 0"
5. 43. 6. Change style for even and odd
5. 43. 7. xsl:choose element is used for selection between several possibilities
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.