Subject: Re: fastest way to do projection in xsl
From: "Kasper Nielsen" <news@xxxxxx>
Date: Thu, 7 Nov 2002 12:16:26 +0100
|
What can I say Joerg!
Thanks a million this was exactly what I was looking for!
regards
Kasper
----- Original Message -----
From: "Joerg Heinicke" <joerg.heinicke@xxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Thursday, November 07, 2002 2:01 AM
Subject: Re: fastest way to do projection in xsl
> Hello Kasper,
>
> a nice and short stylesheet already solves your problem. It contains
> only of the identity transformation template (copies everyting to the
> output, that is matched), a template for all (to not copy the view) and
> a template matching on the project elements, that contains the important
> logic.
>
> <xsl:template match="all">
> <xsl:apply-templates select="projects"/>
> </xsl:template>
>
> <xsl:template match="project">
> <xsl:copy>
> <xsl:variable name="thisProject" select="."/>
> <xsl:for-each select="/all/view/columns/measure">
> <xsl:apply-templates select="$thisProject/measure[@name =
> current()/@name]"/>
> </xsl:for-each>
> </xsl:copy>
> </xsl:template>
>
> <xsl:template match="@*|node()">
> <xsl:copy>
> <xsl:apply-templates select="@*|node()"/>
> </xsl:copy>
> </xsl:template>
>
> I think it's easy to understand, isn't it?
>
> Regards,
>
> Joerg
>
> Kasper Nielsen wrote:
> > Hello,
> >
> > Basicly what im looking for is how to (fastest possible way) do a
project
> > (relational algebra) operation on a long list of relations in xsl
> >
> > Let's say I have this document
> >
> > <all>
> >
> > <view name="economy">
> > <columns>
> > <measure name="economy_estimate"/>
> > <measure name="economy_actual"/>
> > <measure name="responsible"/>
> > </columns>
> > </view>
> >
> > <projects>
> > <project>
> > <measure name="responsible"> kav </measure>
> > <measure name="economy_actual">991233</measure>
> > <measure name="economy_estimate">881123</measure>
> > <measure name="schedule_actual">123</measure>
> > <measure name="schedule_estimate">823</measure>
> > </project>
> > <project>
> > <measure name="responsible"> pjc </measure>
> > <measure name="economy_actual">77123123</measure>
> > <measure name="economy_estimate">44123123</measure>
> > <measure name="schedule_actual">723</measure>
> > <measure name="schedule_estimate">923</measure>
> > </project>
> > ..... 100's of other projects....
> > </projects>
> > </all>
> >
> > how do I transform this document into something like this with xsl
> > The order between measures is as defined in the view part, ie (estimate
> > before actual) before responsible
> >
> > <projects>
> > <project>
> > <measure name="economy_estimate">881123</measure>
> > <measure name="economy_actual">991233</measure>
> > <measure name="responsible"> kav </measure>
> > </project>
> > <project>
> > <measure name="economy_estimate">44123123</measure>
> > <measure name="economy_actual">77123123</measure>
> > <measure name="responsible"> pjc </measure>
> > </project>
> > </projects>
> >
> >
> > regards
> > Kasper
> >
> >
> >
> >
> > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
> >
> >
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|