Bonjour,

Savez-vous pourquoi le code XML suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?xml version="1.0" encoding="utf-8"?>
 
<listitems>
  <data>
    <row link_Fr="http://www.google.fr" />
  </data>
</listitems>
Fonctionne avec le XSL 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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" encoding="utf-8"?>
 
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
  <xsl:output method="html"/>
 
  <xsl:template match="row">
    <div>
      <xsl:call-template name="RemoveEndLine">
        <xsl:with-param name="string" select="@ows_San_Link_Link_Fr" />
      </xsl:call-template>
    </div>
  </xsl:template>
 
  <xsl:template name="RemoveEndLine">
    <xsl:param name="string" />
    <xsl:choose>
      <!-- Supprimer l'espace entre le # et le 1 sinon le forum l'interprête -->
      <xsl:when test="contains($string, '&# 13;')" >
        <xsl:call-template name="RemoveEndLine">
          <!-- Supprimer l'espace entre le # et le 1 sinon le forum l'interprête -->
          <xsl:with-param name="string" select="substring-before($string, '&# 13;')" />
        </xsl:call-template>
      </xsl:when>
      <!-- Supprimer l'espace entre le # et le 1 sinon le forum l'interprête -->
      <xsl:when test="contains($string, '&# 10;')" >
        <xsl:call-template name="RemoveEndLine">
          <!-- Supprimer l'espace entre le # et le 1 sinon le forum l'interprête -->
          <xsl:with-param name="string" select="substring-before($string, '&# 10;')" />
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$string" />
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
 
</xsl:stylesheet>
Et pas avec le code de la fonction RemoveEndLine modifiée de cette façon :
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
18
19
20
21
22
23
 
<xsl:template name="RemoveEndLine">
    <xsl:param name="string" />
    <!-- Supprimer l'espace entre le # et le 1 sinon le forum l'interprête -->
    <xsl:variable name="vbCr">&# 13;</xsl:variable>
    <!-- Supprimer l'espace entre le # et le 1 sinon le forum l'interprête -->
    <xsl:variable name="vbLf">&# 10;</xsl:variable>
    <xsl:choose>
      <xsl:when test='contains($string, $vbCr)' >
        <xsl:call-template name="RemoveEndLine">
          <xsl:with-param name="string" select="substring-before($string, $vbCr)" />
        </xsl:call-template>-->
      </xsl:when>
      <xsl:when test='contains($string, $vbLf)' >
        <xsl:call-template name="RemoveEndLine">
          <xsl:with-param name="string" select="substring-before($string, $vbLf)" />
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$string" />
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
J'utilise la parser Microsoft. Le second code a fonctionné dans le passé mais plus maintenant. Désormais, il part en boucle infinie. Cela vient-il de la version du parser utilisé qui aurait pu subir une mise à jour ?

Merci pour votre réponse.

Cordialement,