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

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

You're on the right track:

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

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]"/>

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


XSL code..............(simplified to focus on dateVar problem)
  <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'"/>
  <input type="hidden" name="varPass" value="{$testVar}"/>

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" />

Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.      
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:

Current Thread