Ich versuche, eine Liste von Geschäften zuerst nach Provinz und dann nach Stadt zu sortieren. Hier ist ein Beispiel xml:xsl: Eine XML-Datei mit zwei verschiedenen Knoten sortieren
<store>
<name>Duncan's</name>
<town>Waterloo</town>
<province>Ontario</province>
</store>
<store>
<name>Anne's</name>
<town>Waterloo</town>
<province>Ontario</province>
</store>
<store>
<name>Apple Variety</name>
<town>Woodstock</town>
<province>Ontario</province>
</store>
<store>
<name>Goose Market</name>
<town>Sackville</town>
<province>New Brunswick</province>
</store>
<store>
<name>Family Market</name>
<town>Sackville</town>
<province>New Brunswick</province>
</store>
konnte ich die Daten erfolgreich nach Stadt sortieren mit diesem Code:
<xsl:key name="towns" match="store" use="town"/>
<xsl:for-each select="//store[generate-id(.)=generate-id(key('towns', town)[1])]">
<xsl:sort select="town"/>
<xsl:for-each select="key('towns', town)">
<xsl:sort select="name"/>
<xsl:if test="position() = 1">
<h2>
<xsl:value-of select="town"/>
</h2>
</xsl:if>
<b> <xsl:value-of select="name"/></b> <br/>
<br/> <br/>
</xsl:for-each>
</xsl:for-each>
Wie würde ich einen Schlüssel zuerst sortieren nach Provinz verwenden, in dem alle Geschäfte in New Brunswick (alphabetisch zuerst nach Stadt dann nach Name) dann Ontario? Oder gibt es einen besseren Weg, dies zu tun, ohne einen Schlüssel zu benutzen? Vielen Dank!
Sie sagen, Sie * sortieren *, aber Sie sind auch * Gruppierung *. Es ist nicht klar, ob Sie auch nach Provinz gruppieren oder nur nach dieser sortieren möchten. Sie können ohne einen Schlüssel sortieren, aber Sie benötigen es, um zu gruppieren. –
Ja, ich möchte sowohl gruppieren als auch sortieren. Also, zuerst gruppieren und sortieren nach Provinz, dann gruppieren und sortieren nach Stadtnamen (innerhalb dieser Provinzgruppen), dann sortieren nach Filialnamen (innerhalb dieser Stadtgruppen) –