bonjour,
Alain Couthures m'a mis sur la bonne voie il y a 15 jours pour publier un dictionnaire de citations. Je ne parviens cependant pas à régler quelques problèmes de récursivité.

1. Je ne sais pas comment écrire un template qui s'applique à chacune des formes récupérées dans le tableau php $tab : par exemple pour le verbe donnez je dois appliquer un template à ces trois formes :
Array ([forme0]=>donnes [forme1]=>donneront [forme3]=>donnerais)
Actuellement je fonctionne ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 <xsl:param name="forme0" />
  <xsl:param name="forme1" />
  <xsl:param name="forme2" />
  <xsl:for-each select="//p[contains(., $forme0 )] ">....</xsl:for-each>
  <xsl:for-each select="//p[contains(., $forme1 )] ">....</xsl:for-each>
Merci de m'aider à trouver la formule qui puisse alléger le script des redites.

2. J'ai un second probleme. L'arborescence de mon document xml suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<TeiCorpus.2>
<auteur>
<TEI.2>
<partie><p>blablabla donnez blablabla donnez bla donnai bla</p></partie>
<partie><p>blablabla donnons blablabla donnons blablabla donne</p></partie>
</TEI.2></auteur<TeiCorpus.2>
Mon probleme c'est qu'avec le code actuel je ne récupère qu'une seule citation par partie pour une même forme. Comment rendre la fonction récursive ? J'y ai travaillé avec les ressources des forums etc sans y parvenir;
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
 
<xsl:for-each select="//p[contains(., $forme0 )] ">
    <tr><td>
	<xsl:value-of select="ancestor::auteur/nom"/>
    </td><td><xsl:text>...</xsl:text>
    <xsl:variable name="sbefore" select="substring-before(., $forme0)"/>
    <xsl:choose>
        <xsl:when test="string-length($sbefore) &lt; 50">
          <xsl:value-of select="$sbefore"/>
        </xsl:when>
        <xsl:otherwise>
        <xsl:value-of select="substring($sbefore, string-length($sbefore)-49, 50)"/>
        </xsl:otherwise>
    </xsl:choose>
    </td><td>
    <span style="color:blue"><xsl:value-of select='$forme0' /></span>
    </td><td>
    <xsl:value-of select="substring(substring-after(., $forme0), 1, 50)"/>
    </td></tr>
  </xsl:for-each>
je vous remercie d'avance pour votre aide.