ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1304
1304
EMPFEHLEN
-
08.09.11 14:59 #1
- Registriert seit
- Nov 2007
- Beiträge
- 4
Hallo,
ich habe ein kleines Problem beim <xsl:sort>
Ich habe z.B. folgende xml-Daten
Code :1 2 3 4 5 6
<data> <key>12AB</key> <key>A12B</key> <key>BA12</key> <key>2AB1</key> </data>
Mein Code sieht folgendermaßen aus:
Code :1 2 3 4
<xsl:for-each select="data/key"> <xsl:sort select="."/> <xsl:value-of select="."/> </xsl:for-each>
Dadurch bekomme ich folgende Ausgabe:
Code :1 2 3 4
12AB 2AB1 A12B BA12
Ich möchte aber, dass zuerst die Werte mit alphanumerischen Zeichen am Beginn kommen und dann die numerischen:
Code :1 2 3 4
A12B BA12 12AB 2AB1
Ich hoffe, mein Problem ist verständlich
Danke
-
Hallo,
wenn in den KEY-Knoten nur Großbuchstaben als Alphazeichen möglich sind, dann könntest du mit der translate-Funktion die numerischen Zeichen z.B. in Kleinbuchstaben umsetzen, etwa so:
Code xml:1 2 3 4
<xsl:for-each select="data/key"> <xsl:sort select="translate(.,'0123456789','abcdefghij')" data-type="text" case-order="upper-first" /> <xsl:copy-of select="." /> </xsl:for-each>
-
09.09.11 08:42 #3
- Registriert seit
- Nov 2007
- Beiträge
- 4
Danke für die Antwort.
Da gibt's nur leider ein Problem.
Damit bekomme ich z.B. folgende Sortierung:
Code :1 2 3 4 5 6
A12B BA12 12AB 2AB1 DA23 3333
Bei Angabe von "upper-first" wird nämlich "A a B b C c" sortiert und nicht "A B C a b c" (was ich eigentlich benötigen würde; es sollten zuerst ALLE Alphazeichen sein, dann die Nummern).
-
Hallo,
tut mir leid, da muss ich passen: Ich wende XSL nur in der Version 1 im Zusammenhang mit LIBXSLT an. In der XSL-Version 2 kann man bei der Sortierung eine Kollation angeben, aber damit habe ich keine Erfahrung.
--> Use custom collations in XSLT 2.0
Was bedeutet das? Alle UTF-8-Alphazeichen? Das kann ich kaum glauben. Mit einer endlichen Zeichenanzahl in den KEY-Knoten könnte man evtl. (mit XSLT v1) eine neues Sortierkriterium als Attribut erzeugen, das ist aber sicherlich recht umständlich. Ich würde deshalb diese Sortierung in der umgebenden Programmiersprache vornehmen.... es sollten zuerst ALLE Alphazeichen ...
Ähnliche Themen
-
phpData zuerst laden, dann anzeigen?
Von crazy_chicken im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 17.08.11, 01:05 -
Zuerst echo $variable und dann definieren?
Von x3008x im Forum PHPAntworten: 6Letzter Beitrag: 20.03.08, 22:39 -
mySQL, InnoDB, Sortierung numerisch und alphabetisch mischen?
Von jeipack im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 19.04.07, 12:00 -
zuerst mc bewegen dann attachen dann Sprung zu frame 2
Von flashmaus im Forum Flash PlattformAntworten: 3Letzter Beitrag: 03.12.04, 11:54 -
zuerst bild laden - dann weiterleiten
Von chappechaes im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 17.03.04, 00:21





Zitieren

Login





