Subject: Re: [xsl] Can't get the value of an attribute in an xsl:param From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Thu, 24 Jul 2003 16:14:53 +0100 |
Hi John, > I'm so close! All I need to do is find a way to use the > answer_scheme_id attribute instead of that hard-coded '1'. But this > doesn't work: > > <xsl:param name="answer_scheme" select="$answer_schemes[position()=@answer_scheme_id]" /> > > Is there some reason I can't get the value of the attribute in the > param element? I know the attribute is there because I do a value-of > right after the parameters. Within the predicate, the context node is the <answer_scheme> element that you're looking at, so the path "@answer_scheme_id" is being interpreted as the answer_scheme_id attribute on that <answer_scheme> element. To look at the answer_scheme_id attribute on the <question> element, which is the current node within the template, use the current() function as follows: <xsl:param name="answer_scheme" select="$answer_schemes[position() = current()/@answer_scheme_id]" /> Alternatively, declare an additional parameter to hold the answer_scheme_id of the <question> element and then refer to that: <xsl:param name="answer_scheme_id" select="@answer_scheme_id" /> <xsl:param name="answer_scheme" select="$answer_schemes[position() = $answer_scheme_id]" /> Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Can't get the value of an att, John Sands | Thread | Re: [xsl] Can't get the value of an, John Sands |
[xsl] Can't get the value of an att, John Sands | Date | Re: [xsl] how pattern match in xsl:, David Carlisle |
Month |