RE: [xsl] referencing nodes via variables

Subject: RE: [xsl] referencing nodes via variables
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 30 Aug 2006 14:21:18 +0100
You could replace $methodID with current()/@methodID, but it's a moot point
whether that's more elegant.

Michael Kay
http://www.saxonica.com/


> -----Original Message-----
> From: scarleton@xxxxxxxxx [mailto:scarleton@xxxxxxxxx] On 
> Behalf Of Sam Carleton
> Sent: 30 August 2006 14:16
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] referencing nodes via variables
> 
> The way things are currently coded, it works.  I am wondering 
> if there is a better way.
> 
> Given this xml:
> 
> <root>
>   <methods>
>     <method id="m1" version="2">
>       <name>Method 1</name>
>     </method>
>     <method id="m1" version="4">
>       <name>Method 1</name>
>     </method>
>   </methods>
>   <schedule>
>     <lines>
>       <line methodID="m1" methodVer="2">
>         <moreData>yada-yada-yada</moreData>
>       </line>
>     </lines>
>   </schedule>
> </root>
> 
> When processing the line element, I need to get to the name 
> of the method.  What I am currently doing is:
> 
> <xsl:template match="line">
>   <xsl:variable  name="methodID" select="@methodID"/>
>   <xsl:variable  name="methodVer" select="@methodVer"/>
>   <xsl:variable  name="method"
> select="/root/methods/method[@id=$methodOID and 
> @version=$methodVer]"/>
> 
> </xsl:template>
> 
> Is there a more elegent way in XSLT 1.0?
> 
> Sam

Current Thread