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.
16K lines doesn't sound very big to me. It shouldn't be a problem. But what
do you mean by "a very long time": 10 seconds? 10 hours? What is the
performance requirement?
<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.
Keys improve the performance of finding a node within a large document based
on the value of some attribute (or other property). You aren't doing that
here, so they won't help.
Michael Kay