André Laugks: Sortierungsproblem

Hallo!

Also irgenwie packe ich das jetzt nicht...

Ich habe hier eine XML-Datei, die nach den Namen sortiert werden soll. Die Ausgabe soll

Andreas
   Diether
   Lisa
   Luise

sein.

Wie liegt mein Denkfehler? Ich habe keien Ahnung, was ich hier übersehe.

<?xml version="1.0"?>
<liste>
 <eintrag>
  <name>Andreas</name>
  <name>Lisa</name>
 </eintrag>
 <eintrag>
  <name>Luise</name>
  <name>Diether</name>
 </eintrag>
</liste>

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/liste">
   <html>
     <body>
       <xsl:apply-templates select="eintrag">
           <xsl:sort select="name"/>
        </xsl:apply-templates>
      </body>
    </html>
  </xsl:template>

<xsl:template match="eintrag">
    <xsl:apply-templates select="name"/>
  </xsl:template>

<xsl:template match="name">
    <xsl:value-of select="."/><br/>
  </xsl:template>

</xsl:stylesheet>

MfG, André Laugks

--
L-Andre @ gmx.de\n
  1. Hi,

    Ich habe hier eine XML-Datei, die nach den Namen sortiert werden soll. Die Ausgabe soll
       Andreas
       Diether
       Lisa
       Luise
    sein.
    Wie liegt mein Denkfehler? Ich habe keien Ahnung, was ich hier übersehe.
    <?xml version="1.0"?>
    <liste>
    <eintrag>
      <name>Andreas</name>
      <name>Lisa</name>
    </eintrag>
    <eintrag>
      <name>Luise</name>
      <name>Diether</name>
    </eintrag>
    </liste>

    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match="/liste">
       <html>
         <body>
           <xsl:apply-templates select="eintrag">
               <xsl:sort select="name"/>
            </xsl:apply-templates>

    Du selektierst hier eintrag-Elemente, die Du nach dem (ersten) name-Element sortieren läßt.

    </body>
        </html>
      </xsl:template>
      <xsl:template match="eintrag">
        <xsl:apply-templates select="name"/>
      </xsl:template>

    Innerhalb der (sortierten) eintrag-Elemente werden aber die name-Elemente unsortiert ausgegeben.

    <xsl:template match="name">
        <xsl:value-of select="."/><br/>
      </xsl:template>
    </xsl:stylesheet>

    Du willst aber name-Elemente, die Du nach sich selbst (also nach .) sortieren lassen willst.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hallo!

      Du selektierst hier eintrag-Elemente, die Du nach dem (ersten) name-Element sortieren läßt.

      Da lag das Hündchen begraben.

      <?xml version="1.0"?>
      <xsl:stylesheet version="1.0"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

      <xsl:template match="/liste">
        <html>
          <body>
            <xsl:apply-templates select="eintrag/name">
              <xsl:sort select="."/>
            </xsl:apply-templates>
          </body>
         </html>
      </xsl:template>

      <xsl:template match="name">
        <xsl:value-of select="."/>
      </xsl:template>

      </xsl:stylesheet>

      MfG, André Laugks

      --
      L-Andre @ gmx.de