txt.xslt
Hilfsvorlagen zur Ausgabe und Verarbeitung von Text
2012-01-01
Herbert
Schiemann
h.schiemann@herbaer.de
Das Wurzelelement für Text-Vorlagen
Die Zeichenfolge, die einen Zeilenwechsel kodiert
Zeichen, die in einem üblichen Programmiersprachen-Namen erlaubt sind
Wiederholt einen Text
Richtet einen Text in einem Feld aus.
Auch wenn der Text länger ist als das Feld,
wird der gesamte Text ausgegeben.
Ersetzt Zeichenfolgen, die nicht durch ein nachfolgendes
besonderes Zeichen geschützt sind (backward protection)
Ersetzt Teilzeichenfolgen global nach Vorgabe einer Liste:
Der erste Listeneintrag wird durch den zweiten ersetzt,
der dritte durch den vierten usw.
Wenn die Anzahl der Listeneinträge ungerade ist,
wird der letzte Listeneintrag durch die leere Zeichenkette ersetzt.
Ersetzt einzelne Zeichen durch Einträge in einer Liste,
entfernt "überzählige" Zeichen
Entfernt Leerzeichen um bestimmte Zeichen herum
,
#
Zerlegt einen Text an Trennzeichenfolgen und ruft für jeden Textabschnitt
die Vorlage für das Element elem
im Modus txt.apply
mit den folgenden Parametern auf:
txt
Der Textabschnitt, eine Teilzeichenkette des zu zerlegenden Textes,
die durch die Trennzeichenfolge begrenzt wird.
Die Trennzeichenfolge selbst ist ausgenommen.
lnr
Eine laufende Nummer, beginnend mit 1.
par
Der Parameter par wird "durchgereicht".
last
Beim letzten Textabschnitt der Wert 1,
sonst nicht definiert.
prev
Der vorhergehende Listeneintrag
Teilzeichenkette bis zu dem letzten Begrenzungszeichen einschließlich.
Wenn die Zeichenkette kein Begrenzungszeichen enthält,
dann ist das Ergebnis leer.
Teilzeichenkette nach dem letzten Begrenzungszeichen.
Wenn die Zeichenkette kein Begrenzungszeichen enthält,
dann ist das Ergebnis die ganze Zeichenkette.
Die letzten Zeichen werden entfernt, sofern sie zu den Begrenzungszeichen gehören.
Die ersten Zeichen werden entfernt, sofern sie zu den Begrenzungszeichen gehören.
Teilzeichenkette bis zum ersten Begrenzungszeichen einschließlich.
Wenn die Zeichenkette kein Begrenzungszeichen enthält,
dann ist das Ergebnis die ganze Zeichenkette.
Teilzeichenkette bis zum ersten Begrenzungszeichen ausschließlich.
Wenn die Zeichenkette kein Begrenzungszeichen enthält,
dann ist das Ergebnis die ganze Zeichenkette.
Teilzeichenkette der ersten Zeichen,
die in der Liste der "erlaubten" Zeichen vorkommen.
Das erste Zeichen, das nicht in der Liste enthalten ist,
ist ausgenommen.
Die Rest-Zeichenfolge nach dem letzen Vorkommen der Such-Zeichenkette
oder die gesamte Zeichenkette, wenn die Such-Zeichenkette nicht gefunden wird.
Ein Text ist in "Wörter" und "Nichtwörter" zu zerlegen.
Alle Zeichen werden einzeln verarbeitet.
Die Vorlage ruft sich dazu rekursiv selbst auf.
Sie ist dabei in einem von zwei Zuständen:
Im ersten Zustand (Anfangszustand) wird jedes Zeichen, das kein "Einleitungszeichen" ist,
an die bisher gelesene Komponente (Nichtwort) angehängt.
Sobald ein "Einleitungszeichen" gefunden wird, endet das aktuelle Wort.
Das Einleitungszeichen gehört zum folgenden Wort. Der Zustand wechselt.
Im zweiten Zustand wird jedes "Wortzeichen" an das gelesene Wort angehängt.
Das erste Zeichen, das kein "Wortzeichen" ist, gehört zum folgenden "Nichtwort".
Der Zustand wechselt.
Das letzte Wort oder Nichtwort endet mit der Zeichenkette.
Für jedes nicht-leere Wort
wird die auf wordelem passende Vorlage aufgerufen,
für jedes nicht-leere Nichtwort
die auf nonwordelem passende Vorlage.
Die beiden Zustände sind als zwei verschiedene Vorlagen implementiert.
Die Vorlagen für wordelem und
nonwordelem werden im Modus
txt.apply
mit den folgenden Parametern aufgerufen:
txt
par
lnr
last
Der Parameter last ist nur beim letzten "Wort"
oder "Nichtwort" mit dem Wert 1 definiert.
Der "Wortmodus" des Wortzerlegers
Ersetzt alle Zeichen außer Buchstaben, Ziffern und dem Zeichen "/" (Sonderzeichen)
durch Leerzeichen,
ersetzt Folgen unmittelbar aufeinander folgender Leerzeichen durch das Zeichen "_"
und das Zeichen "/" durch "."
Die Teilzeichenkette vor der Trennzeichenfolge
oder die ganze Zeichenfolge, wenn sie die Trennzeichenfolge nicht enthält.
Die beiden Vorlagen txt.firstentry
und txt.remaininglist
erlauben zusammen eine einfache Verarbeitung von Listen.
Die Teilzeichenkette nach der Trennzeichenfolge
oder die leere Zeichenfolge, wenn sie die Trennzeichenfolge nicht enthält.
Zusammen mit der Vorlage txt.firstentry
erlaubt diese Vorlage eine einfache Verarbeitung von Listen.
Zerlegt einen Text in Abschnitte (Zeilen) einer maximalen Größe,
die mit mit einem geeigneten Trennzeichen enden.
Für jeden Textabschnitt ruft sie eine Vorlage auf.
Der Modus txt.apply bezeichnet Vorlagen,
die von "Iteratoren" benutzt werden. Ihnen werden die folgenden Parameter übergeben:
txt
Das aktuelle "Iterator-Wort"
lnr
Die lfd. Nummer der Iterator-Position, beginnend mit 1
par
Ein Parameter, der dem Iterator übergeben ist und den dieser weitergibt.
last
Wenn dieser Parameter definiert ist und nicht leer und nicht Null ist,
dann ist der Aufruf der letzte des Iterators.
Selbstpassende Vorlage, rückt Folgezeilen ein
Selbstpassende Vorlage, zählt einen Wert auf: "[lnr]. [txt]\n"
Der Dateiname aus einem Dateipfad:
die Teilzeichenkette nach dem letzten Schrägstrich
oder umgekehrten Schrägstrich
Der Basis-Dateiname aus einem Dateipfad:
die Buchstaben, Ziffern und Unterstriche
nach dem letzten Schrägstrich oder umgekehrten Schrägstrich
Die Einträge der ersten Liste, die auch in der zweiten Liste
vorkommen, in der Reihenfolge der ersten Liste.
"Private" Vorlage zur Implementation der Vorlage txt.listitersect