<html>
<head>
<title>substring-after()-Funktion</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div id="Beschreibung">
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="main">
<tr>
<td valign="top" class="NAME">substring-after()-Funktion</td>
<td valign="top" class="COMPATIBILITY">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
</tr>
<tr>
<td valign="top" colspan="2" class="description">
Diese Funktion liefert den Teil-String des ersten Arguments nach dem ersten Auftreten des zweiten Arguments im ersten Argument. Wenn das zweite Argument im ersten nicht vorkommt, gibt die Funktion <span class="LITERAL">substring-after()</span> einen leeren String zur&uuml;ck. </td></tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Eingaben</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>Zwei Strings. Der erste String ist der String, der durchsucht werden soll und der zweite ist der String, nach dem im ersten String gesucht werden soll. </p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Ausgabe</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>Der Teil des ersten Arguments, der nach dem ersten Auftreten des zweiten Arguments vorkommt. Wenn das zweite Argument im ersten nicht vorkommt, gibt die Funktion einen leeren String zur&uuml;ck. </p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Definition</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>XPath-Abschnitt 4.2, Zeichenkettenfunktionen. </p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Beispiel</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>Das folgende Stylesheet verwendet die benannte Vorlage <span class="LITERAL">replace-substring</span>. Es &uuml;bergibt drei Argumente an die Vorlage <span class="LITERAL">replace-substring</span>: den urspr&uuml;nglichen String, den Teil-String, nach dem im urspr&uuml;nglichen String gesucht werden soll und den Teil-String, der im Ziel-String den urspr&uuml;nglichen Teil-String ersetzen soll. Die Vorlage <span class="LITERAL">replace-substring</span> verwendet die Funktionen <span class="LITERAL">contains()</span>, <span class="LITERAL">substring-after()</span> und <span class="LITERAL">substring-before()</span>. </p>

<!--<?troff .Nd 15?>-->
<p>Hier das Beispiel-Stylesheet, das alle Vorkommnisse von <span class="LITERAL">World</span> durch den String &quot;Mundo&quot; ersetzt:</p>
<span class="PROGRAMLISTING"><pre>
&lt;?xml version="1.0"?&gt;
&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;

  &lt;xsl:output method="text"/&gt;

  &lt;xsl:template match="/"&gt;
    &lt;xsl:variable name="test"&gt;
      &lt;xsl:call-template name="replace-substring"&gt;
        &lt;xsl:with-param name="original"&gt;Hello World!&lt;/xsl:with-param&gt;
        &lt;xsl:with-param name="substring"&gt;World&lt;/xsl:with-param&gt;
        &lt;xsl:with-param name="replacement"&gt;Mundo&lt;/xsl:with-param&gt;
      &lt;/xsl:call-template&gt;
    &lt;/xsl:variable&gt;
    &lt;xsl:value-of select="$test"/&gt;
  &lt;/xsl:template&gt;

  &lt;xsl:template name="replace-substring"&gt;
    &lt;xsl:param name="original"/&gt;
    &lt;xsl:param name="substring"/&gt;
    &lt;xsl:param name="replacement" select="''"/&gt;
    &lt;xsl:variable name="first"&gt;
      &lt;xsl:choose&gt;
        &lt;xsl:when test="contains($original, $substring)"&gt;
          &lt;xsl:value-of select="substring-before($original, $substring)"/&gt;
        &lt;/xsl:when&gt;
        &lt;xsl:otherwise&gt;
          &lt;xsl:value-of select="$original"/&gt;
        &lt;/xsl:otherwise&gt;
      &lt;/xsl:choose&gt;
    &lt;/xsl:variable&gt;
<!--<?troff .Nd 10?>-->
    &lt;xsl:variable name="middle"&gt;
      &lt;xsl:choose&gt;
        &lt;xsl:when test="contains($original, $substring)"&gt;
          &lt;xsl:value-of select="$replacement"/&gt;
        &lt;/xsl:when&gt;
        &lt;xsl:otherwise&gt;
          &lt;xsl:text&gt;&lt;/xsl:text&gt;
        &lt;/xsl:otherwise&gt;
      &lt;/xsl:choose&gt;
    &lt;/xsl:variable&gt;
    &lt;xsl:variable name="last"&gt;
      &lt;xsl:choose&gt;
        &lt;xsl:when test="contains($original, $substring)"&gt;
          &lt;xsl:choose&gt;
            &lt;xsl:when test="contains(substring-after($original, $substring), 
                             $substring)"&gt;
<!--<?troff .Nd 10?>-->
              &lt;xsl:call-template name="replace-substring"&gt;
                &lt;xsl:with-param name="original"&gt;
                  &lt;xsl:value-of 
                    select="substring-after($original, $substring)"/&gt;
                &lt;/xsl:with-param&gt;
                &lt;xsl:with-param name="substring"&gt;
                  &lt;xsl:value-of select="$substring"/&gt;
                &lt;/xsl:with-param&gt;
                &lt;xsl:with-param name="replacement"&gt;
                  &lt;xsl:value-of select="$replacement"/&gt;
                &lt;/xsl:with-param&gt;
              &lt;/xsl:call-template&gt;
            &lt;/xsl:when&gt;
            &lt;xsl:otherwise&gt;
              &lt;xsl:value-of select="substring-after($original, $substring)"/&gt;
            &lt;/xsl:otherwise&gt;
          &lt;/xsl:choose&gt;
        &lt;/xsl:when&gt;
        &lt;xsl:otherwise&gt;
          &lt;xsl:text&gt;&lt;/xsl:text&gt;
        &lt;/xsl:otherwise&gt;
      &lt;/xsl:choose&gt;
    &lt;/xsl:variable&gt;
    &lt;xsl:value-of select="concat($first, $middle, $last)"/&gt;
  &lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;</pre></span>
<p>Das Stylesheet erzeugt die folgenden Ergebnisse, und zwar unabh&auml;ngig vom verwendeten XML-Eingabedokument:</p>
<span class="PROGRAMLISTING"><pre>
Hello Mundo!
</pre></span>
</td>
</tr>
</table>
</div>
</body>
</html>
