Bonjour,

J'utilise le XSL suivant pour générer des classes java :
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('&quot;', ., '&quot;')"/>
		</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>
Mon problème est sur la balise suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<xsl:for-each select="$xpath">
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="/a/b/@c">
ca fonctionne.

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 ?