Bonjour,
J'utilise le XSL suivant pour générer des classes java :
Mon problème est sur la balise suivante :
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 <?xml version="1.0"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:output method="text" name="text"/> <xsl:template match="/"> <xsl:call-template name="MakeComboModelClass"/> </xsl:template> <xsl:template name="MakeComboModelClass"> <xsl:param name="name"/> <xsl:param name="dir"/> <xsl:param name="xpath"/> <xsl:param name="package"/> <xsl:param name="package_dir"/> <xsl:result-document href="file:///{$dir}/src/{$package_dir}/{$name}ComboModel.java" format="text"> <xsl:text>package </xsl:text><xsl:value-of select="$package"/><xsl:text>; import javax.swing.DefaultComboBoxModel; public class </xsl:text><xsl:value-of select="$name"/><xsl:text>ComboModel extends DefaultComboBoxModel { public </xsl:text><xsl:value-of select="$name"/><xsl:text>ComboModel() { super( new Object[]{</xsl:text><xsl:variable name="seq"><xsl:for-each select="document(concat('../data/', $name, '.xml'))"><xsl:for-each select="$xpath"> <xsl:sequence select="concat('"', ., '"')"/> </xsl:for-each></xsl:for-each></xsl:variable> <xsl:value-of select="replace($seq,' ',',')"/><xsl:text>} ); } }</xsl:text> </xsl:result-document> </xsl:template> </xsl:stylesheet>
la valeur de xpath n'est pas prise en compte par le for-each, en revanche si je la remplace directement par sa valeur en faisant par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<xsl:for-each select="$xpath">
ca fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<xsl:for-each select="/a/b/@c">
J'ai vérifié la valeur de xpath que je récupère et c'est bien ce que je veux donc pas de problème de ce côté là.
Quelqu'un aurait-il une explication et/ou une solution ?
Partager