2010-08-08 4 views
0

J'ai le modèle XSLT 2.0 suivant:Saxon 9.2/Java/XSLT: réglage des paramètres de transformation à l'aide setParameters()

<xsl:template name="t1"> 
<xsl:variable name="totalpos" as="xsd:double" select="$currentTotal"/> 
.. 

Je me bats pour programmatticaly fournir currentTotal en tant que paramètre au transformateur, comme celui-ci:

transformer.setParameter("currentTotal", new Double("100")) 

.. mais sans aucun résultat positif:

erreur à/xsl: transform/xsl: temp fin [3]/xsl: variable [1] XPST0008: XPath erreur de syntaxe à 13 ombles en ligne -1 {currentTotal $}: variable currentTotal $ n'a pas été déclaré

Lorsque vous appelez setParameter(), le currentTotal variable sera également défini, non? Comment appeler l'appel setParameter() afin que le currentTotal défini dans mon application soit visible à l'intérieur de la feuille de style?

Pour plus de précisions, je suis instancié avec le transformateur comme celui-ci:

System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl"); 
transformerFactory = new TransformerFactoryImpl(); 
transformer = transformerFactory.newTransformer(inputNodes); 

Répondre

1

Les paramètres doivent être déclarés dans votre feuille de style en utilisant

<xsl:param name="currentTotal"/> 

dans l'élément xsl:stylesheet. Vous pouvez également définir une valeur par défaut avec l'attribut select ou dans le corps de l'élément.

+0

En effet, j'ai besoin de définir la variable. Je m'attendais à ce que cela soit défini quand j'ai défini Parameter, mais j'avais tort. Désolé pour mon contrôle tardif, j'étais en vacances. Merci! – user414366

Questions connexes