homelinksBlijf op de hoogte van de recente aanpassingen op vbvoorbeelden!
Visual Basic 2010 Voorbeelden

visual basic 2010 broncode voorbeelden

Microsoft Visual Studio 2010Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

30.5. xsl:if en xsl:choose Elementen

Print Email Deel op Facebook Deel op Twitter

Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

30.5.1. xsl:if Element

Een alternatief voor een <xsl:for-each> element met een selectie criterium in het select attribuut :
XML Transformation
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" indent="yes"/>
  <xsl:template match="class">
    <html>
      <head>
        <title>Class</title>
      </head>
      <body>
        <ul>
          <xsl:for-each select="student[name!='Paul']">
            <li><xsl:value-of select="name"/></li>
          </xsl:for-each>
        </ul>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
Bestaat erin een <xsl:if> element te gebruiken met een test attribuut waarin de conditie wordt opgegeven :
XML Transformation
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" indent="yes"/>
  <xsl:template match="class">
    <html>
      <head>
        <title>Class</title>
      </head>
      <body>
        <ul>
          <xsl:for-each select="student">
            <xsl:if test="name!='Paul'">
              <li><xsl:value-of select="name"/></li>
            </xsl:if>
          </xsl:for-each>
        </ul>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
Ook hier krijgen we bij dezelfde bron XML :
XML Instantie
<?xml version="1.0" encoding="utf-8"?>
<class>
  <student id="101">
    <name>John</name>
    <IQ>140</IQ>
  </student>
  <student id="102">
    <name>Jane</name>
    <IQ>130</IQ>
  </student>
  <student id="103">
    <name>Paul</name>
    <IQ>135</IQ>
  </student>
</class>
Na transformatie de volgende HTML :
HTML
<html>
  <head>
    <title>Class</title>
  </head>
  <body>
    <ul>
      <li>Jane</li>
      <li>Paul</li>
    </ul>
  </body>
</html>

30.5.2. xsl:choose, xsl:when en xsl:otherwise Elementen

Indien je meerdere condities zou hebben of het "else" scenario voor één of meerder condities zou willen bepalen, kan je gebruik maken van de <xsl:when> en <xsl:otherwise> childelementen van een <xsl:choose> element die je in een <xsl:for-each> element kan opnemen.

Beschikken we over volgende bron XML :
XML Instantie
<?xml version="1.0" encoding="utf-8"?>
<class>
  <student id="101">
    <name>John</name>
    <IQ>140</IQ>
  </student>
  <student id="102">
    <name>Jane</name>
    <IQ>130</IQ>
  </student>
  <student id="103">
    <name>Paul</name>
    <IQ>135</IQ>
  </student>
</class>
En wensen we bijvoorbeeld bij elke naam van een student een opmerking te plaatsen op basis van zijn IQ :
HTML
<html>
  <head>
    <title>Class</title>
  </head>
  <body>
    <ul>
      <li>John : smart</li>
      <li>Jane : not the sharpest knife in the drawer</li>
      <li>Paul : mediocre</li>
    </ul>
  </body>
</html>
Dan kunnen we hiervoor volgende XSLT opstellen :
XML Transformation
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" indent="yes"/>
  <xsl:template match="class">
    <html>
      <head>
        <title>Class</title>
      </head>
      <body>
        <ul>
          <xsl:for-each select="student">
            <li>
              <xsl:value-of select="name"/> :
              <xsl:choose>
                <xsl:when test="IQ>135">smart</xsl:when>
                <xsl:when test="IQ=135">mediocre</xsl:when>
                <xsl:otherwise>not the sharpest knife in the drawer</xsl:otherwise>
              </xsl:choose>
            </li>
          </xsl:for-each>
        </ul>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
Net zoals bij een <xsl:if> element, ga je ook bij een <xsl:when> element, aan de hand van het test attribuut opgeven wat de conditie is.

Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.