This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Passing a parameter from one matched template to another


 >     <xsl:variable name="input"><ARE><YOU><NUTS></xsl:variable>

Is it <ARE/><YOU/><NUTS/> (example 1) or <ARE><YOU><NUTS/></YOU></ARE> 
(example 2)?

Example 1:

<xsl:apply-templates select="vendor:node-set($input)/*[1]" />

<xsl:template match="ARE">
   <xsl:param name="x" select="''"/>
   <xsl:apply-templates select="following-sibling::*[1]">
     <xsl:with-param name="x" select="anything-passed-to-template-YOU"/>
   </xsl:apply-templates>
</xsl:template>

<xsl:template match="YOU">
   <xsl:param name="x" select="''"/>
   <xsl:apply-templates select="following-sibling::*[1]">
     <xsl:with-param name="x" select="anything-passed-to-template-NUTS"/>
   </xsl:apply-templates>
</xsl:template>

<xsl:template match="NUTS">
   <xsl:param name="x" select="''"/>
</xsl:template>

Example 2:

<xsl:apply-templates select="vendor:node-set($input)" />

<xsl:template match="ARE">
   <xsl:param name="x" select="''"/>
   <xsl:apply-templates>
     <xsl:with-param name="x" select="anything-passed-to-template-YOU"/>
   </xsl:apply-templates>
</xsl:template>

<xsl:template match="YOU">
   <xsl:param name="x" select="''"/>
   <xsl:apply-templates>
     <xsl:with-param name="x" select="anything-passed-to-template-NUTS"/>
   </xsl:apply-templates>
</xsl:template>

<xsl:template match="NUTS">
   <xsl:param name="x" select="''"/>
</xsl:template>

paul morgan schrieb:
> Is it possible to pass a parameter from one matched template to another?
> 
> That is, with the following:
> 
>     <xsl:variable name="input"><ARE><YOU><NUTS></xsl:variable>
> 
>     <xsl:apply-templates select="vendor:node-set($input)" />
> 
> I'd like each template that is matched to pass along a value (as determined by the matched template) to the next template that is matched.
> 
>     <xsl:template  match="ARE">
>         <xsl:param name="x" select="''"/>
>         <!-- create some value that should be accessed by the
>              next template matched -- in my example, "YOU" -->
>     </xsl:template>
> 
>     <xsl:template  match="YOU">
>         <xsl:param name="x" select="''"/>
>         <!-- create some value that should be accessed by the
>              next template matched -- in my example, "NUTS" -->
>     </xsl:template>
> 
>     <xsl:template  match="NUTS">
>         <xsl:param name="x" select="''"/>
>         <!-- whatever -->
>     </xsl:template>
> 
> Thanks,
> 
> Paul


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]