Re: [xsl] XSLT sort

Subject: Re: [xsl] XSLT sort
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Wed, 19 May 2004 15:39:15 -0400
Tomas,

The code is doing exactly what you're asking it to --

At 02:49 PM 5/19/2004, you wrote:
<xsl:template match="@enamn">
 <xsl:for-each select="key('mykey',.)">
  <xsl:copy-of select="."/>
 </xsl:for-each>
</xsl:template>

This says "when processing an @enamn attribute, copy each of the nodes to the result tree that are returned by the 'mykey' key for the value of the @enamn".


Accordingly, since the key is set up to return all Person nodes with a given @enamn, for every Olsson in your input, the entire tribe is copied to output. (Maybe this is a good thing.) Try adding another Olsson and you'll see you get Olssons in triplicate.

Maybe you simply want <xsl:copy-of select=".."/> to copy the parent node on which the attribute appears? It's not clear to me why you are using the key. It's not speeding anything up.

Cheers,
Wendell

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>



======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================

Current Thread