Subject: RE: (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: (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.
|