xsl:sort und descendant-or-self
Elmex
- xsl
Hallo,
Mein Problem ist folgendes:
ich habe viele ineinander verschachtelte <page> (für ein Menü).
diese will ich jetzt nach priorität sortiert ausgeben.
dazu benutze ich
<xsl:apply-templates select="Page">
<xsl:sort data-type="number" order="ascending" select="@priority"/>
</xsl:apply-templates>
die ausgabe erfolgt jetzt auch in der richtigen reihenfolge.
In dem Template möchte ich jetzt die id einer <page> ausgeben, wenn es sie gibt, ansonsten die von der ersten untergeordneten page (die oberste seite mit inhalt):
<xsl:value-of select="descendant-or-self::Page/@id"/>
Hierbei funktioniert die sortierung nicht, da die untergeordnete ebene ja noch nicht soritert ist. Gibt es eine Möglichkeit, die unteren ebenen vorher zu sortieren?
Grüße, Elmex
Hallo,
In dem Template möchte ich jetzt die id einer <page> ausgeben, wenn es sie gibt, ansonsten die von der ersten untergeordneten page (die oberste seite mit inhalt):
<xsl:value-of select="descendant-or-self::Page/@id"/>
Hierbei funktioniert die sortierung nicht, da die untergeordnete ebene ja noch nicht soritert ist.
Die Sortierung bezieht sich auf die Ausgabe und nicht auf das XML an sich selbst. D.h. in deinem Fall, dass die <Page>-Elemente in der gegebenen Reihenfolge (@priority) bei der Transformation abgearbeitet werden.
Gibt es eine Möglichkeit, die unteren ebenen vorher zu sortieren?
Das kommt darauf an, wonach du sortieren möchtest.
Was meinst du mit "ersten untergeordneten page"? Wonach ist dieser "page" die erste? In der Ausgabe oder im XML-Quelltext?
Grüße
Thomas