xsl-list
[Top] [All Lists]

Re: Can't get the value of an attribute in an xsl:param

2003-07-24 08:14:53
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()=(_at_)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



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