I have an XML document that has a set of "question" elements, each of
which has an "answer_scheme_id" attribute:
<questions>
<question name="How well did Agent listen?" answer_scheme_id="4" />
...
</questions>
Elsewhere in the document is a set of answer_scheme elements that
each contain the details of the type of question and how it is displayed:
<answer_schemes>
<answer_scheme name="yes or no" max_score="5" type="boolean" format="radioh"/>
...
</answer_schemes>
I have a template for processing the questions, and I call it in two
ways: in one way (that is working fine) I have just one question in
the XML document and I pass in a parameter (from C# code) that contains the
answer_scheme element. In the other way, I process the whole form, so
the question template file is included in the form template file. In
this situation, I do not pass in the answer_scheme node, so the param
is empty and I want the template to find the answer_scheme node
itself. If I hard code a value for answer_scheme_id it works:
<xsl:variable name="answer_schemes"
select="/form/answer_schemes/answer_scheme" />
<xsl:template match="question">
<xsl:param name="answer_scheme" select="$answer_schemes[position()=1" />
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.
Thanks for any suggestions,
John Sands
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list