Choose when statement : Choose « XSLT stylesheet « XML






Choose when statement



File: Data.xml

<?xml version="1.0"?>
<Characters>
  <Character age="1">Character 1</Character>
  <Character age="2">Character 2</Character>
  <Character age="3">Character 3</Character>
  <Character age="4">Character 4</Character>
  <Character age="5">Character 5</Character>
</Characters>


File: Transform.xslt

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

  <xsl:template match="/">
    <html>
      <head>
        <title>title</title>
      </head>
      <body>
        <h3>header 3.</h3>
        <xsl:apply-templates select="/Characters/Character" />
      </body>
    </html>
  </xsl:template>

  <xsl:template match="Character">
    <xsl:choose>
      <xsl:when test="@age &gt; 10 ">
        <paragraph>
          <b>
            <xsl:value-of select="." />
          </b>
          age,
          <b>
            <xsl:value-of select="@age" />
          </b>
          .
        </paragraph>
      </xsl:when>
      <xsl:otherwise>
        <paragraph>
          <b>
            <xsl:value-of select="." />
          </b>
          - ok
        </paragraph>
        .
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>

Output:

<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>title</title>
   </head>
   <body>
      <h3>header 3.</h3>
      <paragraph><b>Character 1</b>
                   - ok
                 
      </paragraph>
              .
            
      <paragraph><b>Character 2</b>
                   - ok
                 
      </paragraph>
              .
            
      <paragraph><b>Character 3</b>
                   - ok
                 
      </paragraph>
              .
            
      <paragraph><b>Character 4</b>
                   - ok
                 
      </paragraph>
              .
            
      <paragraph><b>Character 5</b>
                   - ok
                 
      </paragraph>
              .
            
   </body>
</html>

 








Related examples in the same category

1.when test="position()=last()"
2.xsl:choose, xsl:when and xsl:otherwise