This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: creating and accessing element in the same stylesheet
- From: "Agnes kielen" <a dot kielen at home dot nl>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Tue, 16 Apr 2002 10:44:02 +0200
- Subject: Re: [xsl] creating and accessing element in the same stylesheet
- References: <014201c1e4c8$abfc37f0$c4c909c0@COHANA>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hello Charly,
Reaccesing an element can be done by storing the element in an temporary
tree and then entering the variable. However I don't understand why you want
to do it in this way.
Cheers,
Agnes
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:variable name="temp">
<xsl:element name="root">
<xsl:for-each select="/report/account">
<xsl:element name="{name(.)}">
<xsl:attribute name="name">
<xsl:value-of select="@id"/>
</xsl:attribute>
<xsl:attribute name="value">
<xsl:value-of select="sum(./detail/@value)"/>
</xsl:attribute>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:variable>
<xsl:template match="/">
<xsl:for-each select="$temp/root/account">
<xsl:value-of select="@name"/>, <xsl:value-of select="@value"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
----- Original Message -----
From: "Charly" <cohana@investacorp.com>
To: <xsl-list@lists.mulberrytech.com>
Sent: Monday, April 15, 2002 11:58 PM
Subject: [xsl] creating and accessing element in the same stylesheet
> Hello Friends
> Does anyone have any idea how to create an element in a template and
> accessing it with another template within the same stylesheet .
> I have a generic template that takes a specific format so I need to
reformat
> my data before calling the generic template .
>
> Something that would look like :
>
> Stylesheet
> ----------
> <xsl:stylesheet>
> <xsl:template match="/">
> <xsl:element name="root">
> <xsl:for-each select="/report/account">
> <xsl:element name="{name(.)}">
> <xsl:attribute name="name">
> <xsl:value-of select="@id"/>
> </xsl:attribute>
> <xsl:attribute name="value">
> <xsl:value-of select="sum(./detail/@value)"/>
> </xsl:attribute>
> </xsl:element>
> </xsl:for-each>
> </xsl:element>
> <xsl:apply-templates />
> </xsl:template>
>
> <xsl:template match="/root">
> <xsl:for-each select="/root/account">
> <xsl:value-of select="@name"/> <xsl:value-of select="@value"/>,
> <br/>
> </xsl:for-each>
> <xsl:apply-templates />
> </xsl:template>
> </xsl:stylesheet>
>
>
>
>
> XML Data
> --------
> <report>
> <account id="X12345" description="Individual">
> <detail symbol="GPRXX" price="1" value="137" qty="137" />
> <detail symbol="ODP" price="21.33" value="9598.50" qty="450" />
> <detail symbol="PFE" price="39.29" value="3536.10" qty="90" />
> </account>
> <account id="A256987">
> <detail symbol="ABCAX" price="11.49" value="69717.33" qty="6067.65"
/>
> <detail symbol="WEINX" price="12.49" value="20855.92" qty="1669.81"
/>
> </account>
> <account id="A254487">
> <detail symbol="ABCAX" price="11.49" value="69717.33" qty="6067.65"
/>
> <detail symbol="WEINX" price="12.49" value="20855.92" qty="1669.81"
/>
> </account>
> <account id="C545251">
> <detail symbol="AKAM" price="11.11" qty="965.38" value="10725.37"
/>
> <detail symbol="SPWX" price="5.20" qty="492.49" value="2560.97"
/>
> <detail symbol="SUNW" price="13.69" qty="221.37" value="3030.68"
/>
> <detail symbol="AOL" price="10.92" qty="490.51" value="5356.43"
/>
> <detail symbol="CSCO" price="6.99" qty="1480.02" value="10345.37"
/>
> <detail symbol="YHOO" price="8.56" qty="1187.62" value="10166.07"
/>
> </account>
> </report>
>
> Excepted Output
> ---------------
> X12345, 13271.6
> A256987, 90573.25
> A254487, 90573.25
> C545251, 42184.89
>
>
>
> Please Help .
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list