| Fonction substring-after() | |
| Renvoie la sous-chaîne du premier argument qui suit la première occurrence du second argument dans le premier argument. Si le second argument ne figure pas dans le premier argument, la fonction substring-after() renvoie une chaîne vide. | |
| Entrées | |
|
Deux chaînes. La première chaîne représente la chaîne à rechercher, et la second chaîne représente la chaîne à rechercher dans la première chaîne. |
|
| Sortie | |
|
La portion du premier argument qui suit la première occurrence du second argument. Si le second argument ne figure pas dans le premier argument, la fonction renvoie une chaîne vide. |
|
| Définie dans | |
|
XPath section 4.2, Fonctions Chaîne. |
|
| Exemple | |
|
La feuille de style utilise le modèle nommé replace-substring. Elle transmet trois arguments au modèle replace-substring : la chaîne originale, la sous-chaîne à rechercher dans la chaîne originale et la sous-chaîne qui doit remplacer la sous-chaîne cible dans la chaîne originale. Le modèle replace-substring utilise largement les fonctions contains(), substring-after() et substring-before(). L'exemple de feuille de style est le suivant. Elle remplace toutes les occurrences de World par la chaîne "Mundo" :
<?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>
La feuille de style produit les résultats suivants, peu importe le document XML utilisé comme entrée : Hello Mundo! |
|