Ich habe einen String und ich muss den ersten Buchstaben jedes Wortes in Großbuchstaben umwandeln und mit xsl in den Kleinbuchstaben setzen, zum Beispiel
Eingabestring = dInEsh sAchdeV kApil Muk
Gewünschter Ausgangsstring = Dinesh Sachdev Kapil Muk
Obwohl ich weiß, dass ich die Übersetzungsfunktion für den Zweck verwenden muss, aber wie kann ich die erste Urkunde jedes Wortes in Großbuchstaben übersetzen und alles in Kleinbuchstaben mit XSLT 1.0 ablegen
Danke
Das Folgende ist nicht "nett", und ich bin mir sicher, dass jemand (hauptsächlich Dimitri) etwas viel Einfacheres (besonders in XSLT 2.0) finden könnte ... aber ich habe dies getestet und es funktioniert
%Vor% Die Grundidee ist, dass Sie CamelCase
aufrufen, wenn es ein Leerzeichen findet, dann CamelCaseWord
auf alles vor Leerzeichen (also das erste Wort) ausführt und dann CamelCase
aufruft wieder mit dem alles nach der Raum (dh der Rest des Satzes). Andernfalls, wenn kein Leerzeichen gefunden wird (weil es das letzte Wort im Satz ist), ruft es nur CamelCaseWord
auf.
Die Vorlage CamelCaseWord
übersetzt einfach das erste Zeichen von unten nach oben (falls erforderlich) und alle verbleibenden Zeichen von oben nach unten (falls erforderlich).
Um es zu nennen, hättest du ...
%Vor%Zusätzlich:
Ich habe die 1.0-Anforderung in der Frage verpasst. Dies funktioniert nur ab Version 2.0.
Ursprüngliche Antwort hier unten.
Ich glaube, das hat vor einiger Zeit für mich funktioniert. Deklariere eine Funktion:
%Vor%Und benutze es:
%Vor%Gutschrift geht an samjudson = & gt; Ссылка
Hier ist eine 8 Jahre alte Version von FXSL 1.x (eine XSLT 1.0 Bibliothek, komplett in XSLT 1.0 geschrieben):
test-strSplit-to-Words10.xsl:
%Vor%Wenn diese Umwandlung auf das folgende XML-Dokument angewendet wird (test-strSplit-to-Words10.xml):
%Vor%Das Ergebnis ist :
%Vor%Bei Anwendung auf dieses XML-Dokument (Ihr bereitgestelltes Beispiel):
%Vor%Das Ergebnis ist :
%Vor%Mit nur ein wenig Tweek erhalten wir diesen Code :
%Vor%was nun das gewünschte Ergebnis erzeugt :
%Vor%Erläuterung :
Die Vorlage str-split-word-del
von FXSL kann für die Tokenisierung mit (möglicherweise mehr als einem) Trennzeichen verwendet werden angegeben als String-Parameter.
Hier ist eine andere kurze Lösung. Es verwendet reines XSL-T 2.0. Ich weiß, dass OP eine Anforderung für XSL-T 1.0 hatte, aber da diese Seite 2015 auf Platz 1 der "xsl-t title case function" von Google steht, scheint dies relevanter zu sein:
%Vor%Dabei steht 'xx' für Ihren eigenen Namensraum.
Dieselbe Funktion in XQUERY:
Funktion Xquery zu Camel Case.
%Vor%Tags und Links xml xslt xslt-1.0 title-case