[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Nested xsl:when


Subject: RE: [xsl] Nested xsl:when
From: <Trish@xxxxxxxxxxxxxx>
Date: Mon, 25 Sep 2006 18:06:37 -0400

Hi Danny:

One problem is that in your inner for-each loop, you've included
FormPage/ in the <xsl:value-of select...> statements.

Another is that you've closed your opening for-each loop (second
occurrence) in the opening statement.

Try this instead:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" />
  <xsl:template match="test/Test_Log/PAO_Compare_Test">
    <xsl:for-each select="Test_Results">
      <xsl:sort select="FormName"/>
      <xsl:value-of select="FormName"/>
      <xsl:choose>
        <xsl:when test="FormStatus='FAIL'">
          <ab/>
        </xsl:when>
        <xsl:otherwise>
          <cd/>
        </xsl:otherwise>
      </xsl:choose>
      <xsl:for-each select="FormPage">
        <xsl:value-of select="Page" />
        <xsl:value-of select="Code" />
      </xsl:for-each>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

Trish

-----Original Message-----
From: Danny Leblanc [mailto:leblancd@xxxxxxxxxxxxxxxxxxx]
Sent: Monday, September 25, 2006 5:15 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] Nested xsl:when

Hello everyone,

  Just a quick question. Are nested xsl:whens permitted in an XSL
transform? I am getting errors raised by both Saxon and Altova XSLT with
the following script (about xsl:when not matching up)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" />

  <xsl:template match="test/Test_Log/PAO_Compare_Test">
    <xsl:for-each select="Test_Results">
      <xsl:sort select="FormName"/>
      <xsl:value-of select="FormName"/>
      <xsl:choose>
        <xsl:when test="FormStatus='FAIL'">
          <ab/>
        </xsl:when>
        <xsl:otherwise>
          <cd/>
        </xsl:otherwise>
      </xsl:choose>
      <xsl:for-each select="FormPage"/>
        <xsl:value-of select="FormPage/Page"/>
        <xsl:value-of select="FormPage/Code"/>
      </xsl:for-each>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

  Any thoughts on this would be appriciated.


Current Thread
Keywords