RE: [xsl] relatively new to XSL- variable setting question

Subject: RE: [xsl] relatively new to XSL- variable setting question
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Mon, 06 Oct 2003 19:00:06 -0400
Bruce,

At 06:46 PM 10/6/2003, Bruce you wrote:
Replying to my own post... a simpler way to ask my question is:
- is there a way to test if an element contains a given node
(ColData[@colID='5']? -- then I can make my variable statement conditional
instead of it's value, as one can't reset a variables value in XSL
apparently..

You're on the right track:


<xsl:variable name="testVar">
  <xsl:choose>
    <xsl:test if="@colID=5">
      <xsl:value-of select="@value"/>
    </xsl:test>
    <xsl:otherwise>99999</xsl:otherwise>
  </xsl:choose>
</xsl:variable>

Or sometimes there are more concise ways to achieve the behavior you want:

<input type="hidden" name="varPass" value="99999">
  <xsl:copy-of select="@value[current()/@colID=5]"/>
</input>

No variable needed -- value defaults to 99999 unless your colID is 5, in which case @value is copied.

Cheers,
Wendell

XSL code..............(simplified to focus on dateVar problem)
<td>
  <xsl:variable name="testVar" select="'optionA'"/>
  <xsl:for-each select="ColData">
    <xsl:if test="@colID='5'">
        <xsl:value-of select="@value"/>
      <xsl:variable name="testVar" select="'optionB'"/>
    </xsl:if>
  </xsl:for-each>
  <input type="hidden" name="varPass" value="{$testVar}"/>
</td>

XML input.............
<DataRow rowNumber="2">
  <ColData colID="2" value="2003-10-03" />
  <ColData colID="3" value="Bank One VISA (pay minimum)" />
  <ColData colID="4" value="-100.00" />
  <ColData colID="6" value="1010 &#183; Operating Account (new)" />
  <ColData colID="8" value="Bill Pmt -Check" />
  <ColData colID="9" value="3241-1064422268" />
</DataRow>


======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread