This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: How can place data INSIDE an attribute?
- To: "Phil" <Phillip at Kinecta dot com>
- Subject: Re: [xsl] How can place data INSIDE an attribute?
- From: Jeni Tennison <mail at jenitennison dot com>
- Date: Thu, 23 Aug 2001 12:38:49 +0100
- CC: XSL-List at lists dot mulberrytech dot com
- Organization: Jeni Tennison Consulting Ltd
- References: <DMECKBFLBKJOJKCJGAJCCEHACJAA.Phillip@Kinecta.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
Hi Phil,
> I am doing an XML -> XML transformation below is how I would like
> the output to look, I know how to get the value '24' in the correct
> place. My problem is putting the value 'eng' in the attribute (if
> that's the correct technical term for it).
Attribute is the right term. The path for the 'eng' value is similar
to the one for '24':
/table/row/column[@name = 'Language']
[You have a '/.' at the end of the path that you're using, which you
shouldn't have.]
You can set the value of an attribute using an attribute value
template, in which expressions inside {}s are evaluated and inserted
into the attribute value, as follows:
<xsl:template match="/">
<Product language="{/table/row/column[@name = 'Language']}">
<xsl:apply-templates
select="/table/row/column[@name = 'ProductID']" />
</Product>
</xsl:template>
Alternatively, you could use an xsl:attribute as follows:
<xsl:template match="/">
<Product>
<xsl:attribute name="language">
<xsl:apply-templates
select="/table/row/column[@name = 'Language']" />
</xsl:attribute>
<xsl:apply-templates
select="/table/row/column[@name = 'ProductID']" />
</Product>
</xsl:template>
This allows you to apply templates to the column to get its value, if
that's important to you.
I hope that helps,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list