xsl-list
[Top] [All Lists]

RE: FW: How to store a node in a local variable using if or when

2003-07-31 21:11:35
I don't know...maybe this:

<xsl:variable name="node">
    <xsl:choose>
        <xsl:when test="condition1">
            <xsl:copy-of select="/a/b/c"/>
        </xsl:when>
        <xsl:when test="condition2">
            <xsl:copy-of select="/c"/>
        </xsl:when>
    </xsl:choose>
</xsl:variable>

ohmson

Néstor Boscán <nestor(_dot_)boscan(_at_)tcs(_dot_)com(_dot_)ve> wrote:

Hi

I would like to process information from a node that can come from two
different places in the XML tree. Because the processing is the same I
create a variable and with a choice element I will set the variable to
one of the two nodes. So I can figure out only two ways of doing it that
doesn't work. Here are the two examples:

First example use <xsl:value-of>:

<xsl:variable name="node"/>
   <xsl:choose>
       <xsl:when test="condition1">
           <xsl:value-of select="/a/b/c"/>
       </xsl:when>
       <xsl:when test="condition2">
           <xsl:value-of select="/c"/>
       </xsl:when>
   </xsl:choose>
</xsl:variable>

<xsl:for-each select="$node">
   process
</xsl:for-each>

Will not work because <xsl:value-of> only selects strings not nodes. So
<xsl:variable name="node" select="path"/> is not the same as
<xsl:variable name="node"><xsl:value-of select="path"/></xsl:variable>

Second example use "select" attribute in variable:

<xsl:choose>
   <xsl:when test="condition1">
       <xsl:variable name="node"  select="/a/b/c"/>
   </xsl:when>
   <xsl:when test="condition2">
       <xsl:variable name="node"  select="/c"/>
   </xsl:when>
</xsl:choose>
</xsl:variable>

<xsl:for-each select="$node">
   process
</xsl:for-each>

Will not work because variable "node" is out of scope.

Any ideas?



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



__________________________________________________________________
McAfee VirusScan Online from the Netscape Network.
Comprehensive protection for your entire computer. Get your free trial today!
http://channels.netscape.com/ns/computing/mcafee/index.jsp?promo=393397

Get AOL Instant Messenger 5.1 free of charge.  Download Now!
http://aim.aol.com/aimnew/Aim/register.adp?promo=380455

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



<Prev in Thread] Current Thread [Next in Thread>