xsl:for-each avec un parametre pour select
Bonjour,
J'utilise le XSL suivant pour générer des classes java :
Code:
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> |
Mon problème est sur la balise suivante :
Code:
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:
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 ?