I get some weird problems with this XSLT. If a element has the same
attribute "enamn" like another element, it gets duplicated.
<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:key name="mykey" match="Person" use="@enamn"/>
<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:apply-templates select="@enamn"/>
</xsl:template>
<xsl:template match="@enamn">
<xsl:for-each select="key('mykey',.)">
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
The input:
<Katalog>
<Person fnamn="Arvar" enamn="Olsson" tfn="026-789537">
<Adress adress="Norrav. 34" postnr="50623" postort="Soderhamn"/>
<Cv>Har arbetat som konsult hos microsoft sedan barnsben</Cv>
<Info alder="24"/>
</Person>
<Person fnamn="Orvar" enamn="Orre" tfn="026-782576">
<Adress adress="Sodrav. 34" postnr="50323" postort="Gavle"/>
<Cv>Har arbetat som stadare hos ericsson</Cv>
<Info alder="24"/>
</Person>
<Person fnamn="Nils" enamn="Olsson" tfn="026-789537">
<Adress adress="Ostrav. 30" postnr="12453" postort="Boras"/>
<Cv>arbetslos</Cv>
<Info alder="24"/>
</Person>
</Katalog>
Will result in the output:
<Katalog>
<Person fnamn="Arvar" enamn="Olsson" tfn="026-789537">
<Adress adress="Norrav. 34" postnr="50623" postort="Soderhamn"/>
<Cv>Har arbetat som konsult hos microsoft sedan barnsben</Cv>
<Info alder="24"/>
</Person>
<Person fnamn="Nils" enamn="Olsson" tfn="026-789537">
<Adress adress="Ostrav. 30" postnr="12453" postort="Boras"/>
<Cv>arbetslos</Cv>
<Info alder="24"/>
</Person>
<Person fnamn="Arvar" enamn="Olsson" tfn="026-789537">
<Adress adress="Norrav. 34" postnr="50623" postort="Soderhamn"/>
<Cv>Har arbetat som konsult hos microsoft sedan barnsben</Cv>
<Info alder="24"/>
</Person>
<Person fnamn="Nils" enamn="Olsson" tfn="026-789537">
<Adress adress="Ostrav. 30" postnr="12453" postort="Boras"/>
<Cv>arbetslos</Cv>
<Info alder="24"/>
</Person>
<Person fnamn="Orvar" enamn="Orre" tfn="026-782576">
<Adress adress="Sodrav. 34" postnr="50323" postort="Gavle"/>
<Cv>Har arbetat som stadare hos ericsson</Cv>
<Info alder="24"/>
</Person>
Whats wrong? I use keys to get better performance...
/Tomas
</Katalog>