This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Problems displaying xsl:value-of within quotes
- To: "David James" <nicolsoft at hotmail dot com>
- Subject: Re: Problems displaying xsl:value-of within quotes
- From: Jeni Tennison <Jeni dot Tennison at epistemics dot co dot uk>
- Date: Fri, 16 Jun 2000 15:01:53 +0100
- Cc: XSL-List at mulberrytech dot com
- Reply-To: xsl-list at mulberrytech dot com
David,
>I have written the following XSLT to display a list of checkboxes
>
><xsl:for-each select="data">
>
><TD><INPUT TYPE="CHECKBOX" NAME="item1"><xsl:value-of
>select="@label"/></INPUT></TD>
>
></xsl:for-each>
>
>which is fine, but I want to change the NAME="item1" to NAME="<xsl:value-of
>select="@name"/>" but this does not work.
There are two ways to do what you want to do, one of which is a shortening
of the other. The essential thing you have to realise is that you're
constructing an element tree, not putting together strings to give an HTML
file. To rephrase your question with this in mind: what you want to do is
create an 'INPUT' element whose 'NAME' attribute is equal to the value of
the 'name' attribute of the current node (the 'data' element).
The first way, which is longer but a bit more flexible, is to use
xsl:attribute, which lets you specify the value of an attribute on a result
element in any way you want within its content:
<xsl:for-each select="data">
<TD>
<INPUT TYPE="CHECKBOX">
<xsl:attribute name="NAME">
<xsl:value-of select="@name" />
</xsl:attribute>
<xsl:value-of select="@label" />
</INPUT>
</TD>
</xsl:for-each>
The second way, which is shorter, but less flexible, is to use an
'attribute-value-template'. Basically, if you place an XPath (like @name)
within {}s in an attribute value, then the XPath is evaluated to give the
value for the attribute:
<xsl:for-each select="data">
<TD>
<INPUT TYPE="CHECKBOX" NAME="{@name}">
<xsl:value-of select="@label" />
</INPUT>
</TD>
</xsl:for-each>
I hope that helps,
Jeni
Dr Jeni Tennison
Epistemics Ltd, Strelley Hall, Nottingham, NG8 6PE
Telephone 0115 9061301 • Fax 0115 9061304 • Email
jeni.tennison@epistemics.co.uk
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list