Subject: RE: 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: 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
|