[EDIT] Sry ich hab wohl auf das Falsche Forum geklickt. Kann das bitte jemand verschieben ? thx
Hi,
ich hab da eine kleines Problem mit der XSLT-Anweisung for-each.
Ich dachte eigentlich das ich sie verstanden hab aber anscheinend wohl nicht.
Ich hab folgende xml Datei :
Ich will jetzt die verschiedenen Gruppen ermitteln die es
bei dem GENRE Element gibt und dann die zugehörigen
NAME Elemente sortieren.
Das ist meine XSLT Datei dazu:
Im Moment werden mir 4 "s" ausgegeben wenn ich es laufen lass.
Wenn ich jetzt ein sort an die Stelle mache bekomme ich folgende
Fehlermeldung:
bekomme ich 4x alle 4 Namen ausgegeben.
Das erklärt natürlich die Fehlermeldung von sort.
Aber warum ist das so?
Meine sort und value-of Anweisung sehen so aus :
Was auch sehr seltsam ist. Sollte ich nicht durch meine for-each Anweisung
bei dem Element GENRE sein ? Ich arbeite mit Stylus Studio und der sagt mir
das ich bei der Pfadangabe bei meinem Rootelement anfangen muss.
Bei meiner for-each-group Anweisung geht es komischerweise.
Irgendwas mach ich anscheinend noch falsch, ich hoffe jemand kann mir helfen?
Gruß Benny
Hi,
ich hab da eine kleines Problem mit der XSLT-Anweisung for-each.
Ich dachte eigentlich das ich sie verstanden hab aber anscheinend wohl nicht.
Ich hab folgende xml Datei :
Code:
<BUCHVERWALTUNG>
<BUECHER>
</BUECHER>
<GENRES>
<GENRE GROUP="ROMAN">
<ID>1</ID>
<NAME>Fantasy</NAME>
</GENRE>
<GENRE GROUP="ROMAN">
<ID>2</ID>
<NAME>Science Fiction</NAME>
</GENRE>
<GENRE GROUP="FACHBUCH">
<ID>3</ID>
<NAME>Informatik</NAME>
</GENRE>
<GENRE GROUP="FACHBUCH">
<ID>4</ID>
<NAME>Mathematik</NAME>
</GENRE>
</GENRES>
</BUCHVERWALTUNG>
bei dem GENRE Element gibt und dann die zugehörigen
NAME Elemente sortieren.
Das ist meine XSLT Datei dazu:
Code:
<?xml version='1.0' encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/BUCHVERWALTUNG">
<xsl:apply-templates select="GENRES" />
</xsl:template>
<xsl:template match="GENRES">
<xsl:for-each-group select="GENRE" group-by="@GROUP">
<xsl:sort select="current-grouping-key()"/>
<xsl:call-template name="mytemp">
<xsl:with-param name="group">
<xsl:value-of select="current-grouping-key()"/>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each-group>
</xsl:template>
<xsl:template name="mytemp">
<xsl:param name="group"></xsl:param>
<xsl:value-of select="$group"/><br/>
--------------------------------
<xsl:for-each select="/BUCHVERWALTUNG/GENRES/GENRE" >
s
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Wenn ich jetzt ein sort an die Stelle mache bekomme ich folgende
Fehlermeldung:
Ersetze ich das sort durch eine value-of Anweisunggenres.xsl (33, 1): Error: on line 33 of file:///c:/DOKUME%7E1/kle-ben/Desktop/XML/genres.xsl:; XTTE1020: A sequence of more than one item is not allowed as the @select attribute of xsl:sort;
bekomme ich 4x alle 4 Namen ausgegeben.
Das erklärt natürlich die Fehlermeldung von sort.
Aber warum ist das so?
Meine sort und value-of Anweisung sehen so aus :
Code:
<xsl:sort select="/BUCHVERWALTUNG/GENRES/GENRE/NAME" />
<xsl:value-of select="/BUCHVERWALTUNG/GENRES/GENRE/NAME"/>
bei dem Element GENRE sein ? Ich arbeite mit Stylus Studio und der sagt mir
das ich bei der Pfadangabe bei meinem Rootelement anfangen muss.
Bei meiner for-each-group Anweisung geht es komischerweise.
Irgendwas mach ich anscheinend noch falsch, ich hoffe jemand kann mir helfen?
Gruß Benny
Zuletzt bearbeitet: