XPath / XPath-Funktionen / Stringfunktionen / XPath: substring, string-length
![]() |
![]() |
➪ Die XPath-Funktion substring erlaubt, aus einer Zeichenkette einen Teilstring zu ermitteln.
Die substring-Funktion hat mindestens zwei, optional drei Parameter:
Häufig kommt es vor, dass nur die letzten z.B. drei Buchstaben eines Strings verwendet werden sollen. Dazu ist erforderlich, zuerst die Länge des Gesamtstrings zu erfassen, dies geschieht mit string-length. Ist die gesamte Stringlänge von "Sinnlos" 7, dann muss von diesem Wert 2 subtrahiert werden, um die Startposition 5 für den substring zu erhalten. Das Resultat lautet dann "los".
Adressiert wird die Menge der relevanten Nodes über XPath /Orte/Ort[1]/Mensch, also alle Childnodes Mensch im ersten Ort (also Ort[1] = Ort[position() = 1]).
<xsl:for-each select="Orte/Ort[1]/Mensch">
<xsl:value-of select="substring(name, string-length(name)-2)" />
<xsl:if test="position() != last()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
Umgekehrt kommt es vor, dass lediglich die ersten Zeichen eines Strings gesucht werden, die letzten drei Zeichen müssen jedoch abgeschnitten werden. Auch hier kommt wieder substring in Kombination mit string-length zum Einsatz. Hier ist der zweite Parameter jedoch die erste Position (1) des Strings, der zweite Substring-Parameter ermittelt die Stringlänge abzüglich der letzten drei Stellen.
<xsl:for-each select="/Orte/Ort[1]/Mensch">
<xsl:value-of
select="substring(name,
1,
string-length(name)-3)" />
</xsl:for-each>
Sind die betreffenden letzten drei Buchstaben bekannt, z.B. 'los', so kommt alternativ auch substring-before zum Einsatz:
<xsl:value-of
select="substring-before(name, 'los')"/>
wg / 31. Dezember 2019
Fragen? Anmerkungen? Tipps?
Bitte nehmen Sie Kontakt zu mir auf.
V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn
☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de