Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Vins' blog

Blog technique de Vincent Bellet sur le monde Microsoft : actualités, Imagine Cup, .NET...
XSL : remplacer une chaîne de caractères

Hello,

Ayant eu récemment le cas, je vous partage une solution pour ce genre de problématique. Cela peut s'avérer utile par exemple pour faire une modification sur une chaîne récurrente.

Objectif : avoir un moyen qui permette dans une chaîne de caractères donnée de remplacer une partie de la chaîne par une autre.

Solution : créer un template récursif prenant 3 paramètres, la chaîne à analyser, la chaîne à remplacer, la nouvelle valeur de la chaîne.

Grosso modo vous vous retrouvez avec un code qui ressemble à ça:

<xsl:template name="replace-string">
  <xsl:param name="str" />
  <xsl:param name="strToReplace" /> 
  <xsl:param name="newStr" />

  <xsl:if test="string-length(substring-before($str,$strToReplace)) =0"> 
    <xsl:value-of select="$str" /> 
  </xsl:if> 
  <xsl:if test="string-length(substring-before($str,$strToReplace)) > 0"> 
    <xsl:value-of select="substring-before($str,$strToReplace)" /> 
    <xsl:value-of select="$newStr" /> 
  </xsl:if>

  <xsl:if test="string-length(substring-after($str,$strToReplace)) > 0"> 
    <xsl:call-template name="replace-string"> 
      <xsl:with-param name="str" select="substring-after($str,$strToReplace)" /> 
      <xsl:with-param name="strToReplace" select="$strToReplace" /> 
      <xsl:with-param name="newStr" select="$newStr" /> 
    </xsl:call-template> 
  </xsl:if>
</xsl:template>

Il ne vous reste plus qu'à appeler votre template avec le traditionnel apply-templates et en précisant les valeurs des 3 paramètres.

Le tour est joué!

Vincent

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mercredi 23 avril 2008 00:46 par ElVins
Classé sous : ,

Commentaires

cyril a dit :

sympa :)

moi j'avais fait ça :

<xsl:stylesheet xmlns:msxml="urn:schemas-microsoft-com:xslt" xmlns:cs="http://schemas.codes-sources.com/Docx2Html/" ...="" />

<msxml:script language="C#" implements-prefix="cs">

   public String Replace(String s)

   {

   return s.Replace(" ", " ");

   }

 </msxml:script>

<xsl:value-of select="cs:Replace(.)" />

# avril 23, 2008 02:10

Renfield a dit :

énorme, cyril : j'ignorais que l'on pouvais coller du C# dans des XSL

# avril 23, 2008 09:11

ElVins a dit :

Effectivement la solution de Cyril fonctionne, cependant je voulais montrer que l'on pouvait le faire sans utilisation de .NET.

Effectivement si vous êtes dans une situation où vous générez votre XSL sans la plateforme .NET, la solution purement template prendra tout son intérêt

Merci Cyril pour apporter ta vision client ^^, :p

# avril 23, 2008 10:53
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01