IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSLT] passé slash en paramètre d'un template


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Invité
    Invité(e)
    Par défaut [XSLT] passé slash en paramètre d'un template
    Bonjour tout le monde!
    J'essaie de passer le caractère '/' à un template xslt dont le code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <xsl:template name="lastSubstring">
      <xsl:param name="theString" />
      <xsl:param name="token" />
      <xsl:value-of select="$token" />
      <xsl:choose>
        <xsl:when test="contains($theString,$token)">
          <xsl:variable name="cutString" select="substring-after($theString,$token)" />
          <xsl:call-template name="lastSubstring">
            <xsl:with-param name="theString" select="$cutString" />
          </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$theString" />
        </xsl:otherwise>
      </xsl:choose>
    Si je passe simplement le caractère /, ou si je passe son caractère unicode (&#x002f :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xsl:call-template name="lastSubstring">
      <xsl:with-param name="theString" select="link" />
      <xsl:with-param name="token" value="&#x002f;" />
    </xsl:call-template>
    il considère ce slash comme la racine du xml.

    Est-ce que quelqu'un aurait une idée de comment faire ?

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Comme souvent, il suffit de poster un message pour trouver la réponse. Alors voilà les modifs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <xsl:template name="lastSubstring">
      <xsl:param name="theString" />
      <xsl:param name="token" />
      <xsl:value-of select="$token" />
      <xsl:choose>
        <xsl:when test="contains($theString,$token)">
          <xsl:variable name="cutString" select="substring-after($theString,$token)" />
          <xsl:call-template name="lastSubstring">
            <xsl:with-param name="theString" select="$cutString" />
            <xsl:with-param name="token" value="'&#x002f;'" />
          </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$theString" />
        </xsl:otherwise>
      </xsl:choose>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xsl:call-template name="lastSubstring">
      <xsl:with-param name="theString" select="link" />
      <xsl:with-param name="token" value="'&#x002f;'" />
    </xsl:call-template>
    Voilou! Merci quand même pour le forum!

Discussions similaires

  1. [XSLT]récupération d'un paramètre de l'URL
    Par cootchy dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 20/03/2007, 09h57
  2. Réponses: 2
    Dernier message: 23/08/2006, 10h42
  3. Passage de paramètres vers un template xsl
    Par Le lag dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 19/04/2006, 18h20
  4. [XSLT JS] Passage de paramètre
    Par GwiGwi dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/04/2006, 21h24
  5. [XSLT][Saxon]passage de paramètres à une template
    Par RB Greg dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 12/05/2005, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo