XSLT Sortierung
Hallo zusammen,
ich habe folgendes Problem mit einer XSLT Datei:
Ich stehe irgendwie gerade auf dem Schlauch...
Vielleicht hat jemand von euch eine Idee / Tipp
Es geht um folgende XML Datei:
Diese würde ich gerne so haben: Also sortiert nach der Nummer die in "Name" nach dem P kommt
Jetzt gibt es ja in XSLT die Möglichkeit zu sortieren. Ich habe folgendes probiert:
Raus kommt natürlich nur die Sortierung nach dem Buchstaben aber nicht nach der Nummer danach. Mit Type Number das gleiche
Würde mich riesig über eine Antwort freuen !
Grüße,
chrisen
ich habe folgendes Problem mit einer XSLT Datei:
Ich stehe irgendwie gerade auf dem Schlauch...
Vielleicht hat jemand von euch eine Idee / Tipp
Es geht um folgende XML Datei:
<DocumentElement>
<article>
<active>1</active>
<ItemCode>23456</ItemCode>
<name>P22</name>
</article>
<article>
<active>1</active>
<ItemCode>12345</ItemCode>
<name>P10</name>
</article>
<article>
<active>1</active>
<ItemCode>34567</ItemCode>
<name>P35</name>
</article>
<article>
<ItemCode>45678</ItemCode>
<name>P108</name>
</article>
</DocumentElement>
Diese würde ich gerne so haben: Also sortiert nach der Nummer die in "Name" nach dem P kommt
<DocumentElement>
<article>
<ItemCode>12345</ItemCode>
<name>P10</name>
</article>
<article>
<ItemCode>23456</ItemCode>
<name>P22</name>
</article>
<article>
<ItemCode>34567</ItemCode>
<name>P35</name>
</article>
<article>
<ItemCode>45678</ItemCode>
<name>P108</name>
</article>
</DocumentElement>
Jetzt gibt es ja in XSLT die Möglichkeit zu sortieren. Ich habe folgendes probiert:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/">
<Root>
<sort>
<xsl:for-each select="DocumentElement/article">
<xsl:sort select="name" order="descending" data-type="text" />
<ItemCode><xsl:value-of select="ItemCode"/> </ItemCode>
<name><xsl:value-of select="name"/></name>
</xsl:for-each>
</sort>
</Root>
</xsl:template>
</xsl:stylesheet>
Raus kommt natürlich nur die Sortierung nach dem Buchstaben aber nicht nach der Nummer danach. Mit Type Number das gleiche
Würde mich riesig über eine Antwort freuen !
Grüße,
chrisen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 333024
Url: https://administrator.de/contentid/333024
Ausgedruckt am: 05.12.2024 um 01:12 Uhr
5 Kommentare
Neuester Kommentar
Ich stehe irgendwie gerade auf dem Schlauch...
Wieso steht hier jeder zweite auf dem "Schlauch"?, der hat euch doch nichts böses getan .Nimm einfach die Substring Funktion im select und überspringst damit das P, dort darfst du ja mit xpath arbeiten:
<xsl:sort select="substring(name,2)" order="ascending" data-type="number" />
Ich jetzt leider noch ein Problem:
"Ich dir kommen mit Lösung "Mach im xsl:foreach ein Select mit der starts-with() Funktion !
<xsl:for-each select="DocumentElement/article[starts-with(name,'P')]">
<xsl:sort select="substring(name,2)" order="ascending" data-type="number" />
going to standby for next question