contains()-Funktion | |
Diese Funktion ermittelt, ob der String im ersten Argument das zweite Argument enthält. | |
Eingaben | |
Zwei Strings. Wenn der erste String den zweiten enthält, gibt die Funktion den Booleschen Wert true zurück. |
|
Ausgabe | |
Der Boolesche Wert true, wenn das erste Argument das zweite enthält, andernfalls false. |
|
Definition | |
XPath-Abschnitt 4.2, Zeichenkettenfunktionen |
|
Beispiel | |
Das folgende Stylesheet verwendet die benannte Vorlage replace-substring. Es übergibt drei Argumente an die Vorlage replace-substring: den ursprünglichen String, den Teil-String, nach dem im ursprünglichen String gesucht werden soll, und den Teil-String, der im Ziel-String den ursprünglichen Teil-String ersetzen soll. Die Vorlage replace-substring verwendet die Funktionen contains(), substring-after() und substring-before(). Hier das Beispiel-Stylesheet, das alle Vorkommnisse von World durch den String "Mundo" ersetzt: <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="text"/> <xsl:template match="/"> <xsl:variable name="test"> <xsl:call-template name="replace-substring"> <xsl:with-param name="original">Hello World!</xsl:with-param> <xsl:with-param name="substring">World</xsl:with-param> <xsl:with-param name="replacement">Mundo</xsl:with-param> </xsl:call-template> </xsl:variable> <xsl:value-of select="$test"/> </xsl:template> <xsl:template name="replace-substring"> <xsl:param name="original"/> <xsl:param name="substring"/> <xsl:param name="replacement" select="''"/> <xsl:variable name="first"> <xsl:choose> <xsl:when test="contains($original, $substring)"> <xsl:value-of select="substring-before($original, $substring)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$original"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="middle"> <xsl:choose> <xsl:when test="contains($original, $substring)"> <xsl:value-of select="$replacement"/> </xsl:when> <xsl:otherwise> <xsl:text></xsl:text> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="last"> <xsl:choose> <xsl:when test="contains($original, $substring)"> <xsl:choose> <xsl:when test="contains(substring-after($original, $substring), $substring)"> <xsl:call-template name="replace-substring"> <xsl:with-param name="original"> <xsl:value-of select="substring-after($original, $substring)"/> </xsl:with-param> <xsl:with-param name="substring"> <xsl:value-of select="$substring"/> </xsl:with-param> <xsl:with-param name="replacement"> <xsl:value-of select="$replacement"/> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring-after($original, $substring)"/> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:text></xsl:text> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:value-of select="concat($first, $middle, $last)"/> </xsl:template> </xsl:stylesheet> Das Stylesheet erzeugt die folgenden Ergebnisse, und zwar unabhängig vom verwendeten XML-Eingabedokument: Hello Mundo! |