Salut tout le monde,
A partir de cet exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<table> 
   <tr>       
     <td> 
       blablaMC11blablablablaMC22blablablabla 
     </td> 
     <td> 
       blablablaMC33blabla 
     </td> 
   </tr> 
</table>
Le but c'est de récupérer 11 22 33
Le XSLT suivant ce base sur le mot clé ---> "MC" dans l'exemple puis fait un substring-after avec la longeure voulue pour récupérer les chifres

Je n'arrive à récupérer que le premier chiffre 11 mais pas les autres
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
<xsl:template match="/"> 
       <number> 
         <xsl:choose> 
           <xsl:when test="//text()[contains(., 'MC')]"> 
               <xsl:variable name="txt1"> 
                   <xsl:copy-of select="//text()[contains(., 'MC')]"/> 
                </xsl:variable> 
                 <xsl:variable name="txt2"> 
                   <xsl:copy-of select="normalize-space(translate((substring-after($txt1,'MC')), ': .',''))"/> 
                </xsl:variable> 
 
                <xsl:variable name="num"> 
                   <xsl:copy-of select="substring($txt2, 1,2)"/> 
                 </xsl:variable>            
                 <!-- un petit test pour être sûr de ne récupérer que des chifres avec une longueure de 2--> 
                 <xsl:choose> 
                 <xsl:when test="number($num) and string-length($num) =2"> 
                      <xsl:value-of select="$num"/> 
                 </xsl:when> 
             </xsl:choose>          
       </xsl:when> 
    </xsl:choose>  
   </number> 
</xsl:template>
comment faire pour récupérer les autres chiffres 22 33 ?
merci pour votre aide