xsl-list
[Top] [All Lists]

RE: XSLT sort

2004-05-20 12:06:53
Im trying to sort a large XML document. I used this XSLT before but it takes a very long time to sort a big document, with big I mean around 16 000 lines.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="Katalog">
<xsl:copy>
<xsl:apply-templates select="Person">
<xsl:sort select="@enamn"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>

<xsl:template match="Person">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>

I heard that it possible to get better performance if I put the nodes in a key and sorted on the key. Its that Im trying to achive. Do you know how its possible to get better performance? Im using MSXML and the method transformeNodeToObject.

/Tomas

At 21:06 2004-05-19 +0100, you wrote:
>
> I get some weird problems with this XSLT. If a element has the same
> attribute "enamn" like another element, it gets duplicated.
>
>
> <xsl:template match="@enamn">
>   <xsl:for-each select="key('mykey',.)">
>    <xsl:copy-of select="."/>
>   </xsl:for-each>
> </xsl:template>
>

key('mykey',.) selects all the elements that have a value for mykey equal to
the value of the context node. So this will do exactly what you describe:
each time you hit the value X, it will output one copy of each node whose
value is X.

I don't know what you're trying to achieve by using a key here.

Michael Kay


--+------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--




<Prev in Thread] Current Thread [Next in Thread>