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 :
Merci de m'aider à trouver la formule qui puisse alléger le script des redites.
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>
2. J'ai un second probleme. L'arborescence de mon document xml suit :
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 <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>
je vous remercie d'avance pour votre aide.
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) < 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>
Partager