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>
--+--