RE: [xsl] (newby) define an attribute based on an attribute value

Subject: RE: [xsl] (newby) define an attribute based on an attribute value
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 1 Apr 2005 09:39:37 +0100
As well as the answer to your question (A[...]/B/@v) you might like to note
that you don't have to use xsl:element and xsl:attribute. You can write the
much more concise

<Point PointAttribute="{A[@id='123']/B/@v}"/>

XSLT has a reputation for verbosity, but it doesn't have to be as bad as
people sometimes make it.

Michael Kay
http://www.saxonica.com/ 



> -----Original Message-----
> From: dalloro@xxxxxxxxx [mailto:dalloro@xxxxxxxxx] 
> Sent: 01 April 2005 08:22
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] (newby) define an attribute based on an attribute value
> 
> Hi,
> 
> I'm a newby in XSL tranformations. I need to trasform an XML file into
> another XML file with a different structure.
> 
> Inside a template I build an element named Point that has several
> attributes. The value of one of these attributes depends on the value
> of an attribute in the source XML (the attribute v of the element B
> that I filtered through the parent 'id', in the code below)
> 
> [snip]
>    <xsl:element name="Point">
> [snip]
>       <xsl:attribute name="PointAttribute">
>         <xsl:value-of select="A[@id='123']/B[@v]"/>
>       </xsl:attribute>
> [snip]
>    </xsl:element>
> [snip]
> 
> I would like to obtain a 'Point' element with an attribute called
> 'PointAttribute' with the same value of the 'v' attribute of the
> element 'B'.
> 
> What is the best way to deal with this problem?
> 
> I thank you for the help.
> Best regards.
> 
> Livio.

Current Thread