Bonjour,
Dans le cadre de mon travail, je génère un fichier xml grâce à la tache cvslog de Ant. Je souhaite y appliquer un filtre et générer un rendu html.
Pour cela, j'utilise XSLT 1.0. J'ai écrit une fonction, dans mon xslt, qui récupère le filtre depuis Ant et vérifie si dans la balise <msg> j'ai ce filtre. Si le filtre y est, je souhaite copier tout le noeud parent et ses fils.
Le problème, c'est que lorsque je copie le noeud parent, j'ai un très jolie stackOverFlow dans mon Ant...
Voici ma fonction XSLT :
Voici un bout de XML sans le noeud racine (<changelog>)
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="filter"> <xsl:param name="message" select="0"/> <xsl:value-of select="$message"/> <xsl:choose> <xsl:when test="contains($message, $filters)"> <xsl:copy> <xsl:apply-templates select="parent::entry"/> </xsl:copy> <xsl:apply-templates select="date"/> </xsl:when> <xsl:otherwise> <xsl:text></xsl:text> </xsl:otherwise> </xsl:choose> </xsl:template>
Est-ce que quelqu'un aurait une idée qui pourrait me mettre sur une piste ? J'avoue être complètement bloqué, étant novice confirmé sur ces technos là (Ant\XSLT).
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
40
41 <entry> <date>2009-10-06</date> <time>11:11</time> - <author> - <![CDATA[ dev1 ]]> </author> - <file> - <name> - <![CDATA[ test/Bootstrapper.php ]]> </name> <revision>1.1.2.1</revision> </file> - <file> - <name> - <![CDATA[ test/setupTest.php ]]> </name> <revision>1.1.2.1</revision> </file> - <file> - <name> - <![CDATA[ test/adresse/AdresseTest.php ]]> </name> <revision>1.1.2.1</revision> </file> - <file> - <name> - <![CDATA[ test/adresse/AdresseTransformerTest.php ]]> </name> <revision>1.1.2.1</revision> </file> - <msg> - <![CDATA[mise en place de test unitaire ]]> </msg> </entry>
Merci d'avance.
Cordialement,
jlnikko
Partager