Bonjour tout le monde.
Actuellement je reprends un travail qui utilise des feuilles Xsl pour modifier la structure de certain fichier xml.
je passe par un code Java, avec des transformeurs qui appellent ces feuilles Xsl .
Mon but est de rajouter certains paramètres, initialisé via le java, pour faire des traitements xsl différent suivant le cas.
J'ai donc rajouté des params dans mes feuilles XSL
J'ai modifié le code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <xsl:param name="MemeZone256A"/> <xsl:param name="MemeZone256B"/>
Code initial
Nouveau code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <xsl:call-template name="zoneSpecifique"> <xsl:with-param name="zone">256</xsl:with-param> <xsl:with-param name="sz">abc</xsl:with-param> </xsl:call-template>
Et du côté 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 <xsl:call-template name="zoneSpecifique"> <xsl:with-param name="zone">256</xsl:with-param> <xsl:choose> <xsl:when test="$MemeZone256A='true'"> <xsl:when test="$MemeZone256B='true'" > <xsl:with-param name="sz">c</xsl:with-param> </xsl:when> <xsl:otherwise> <xsl:with-param name="sz">bc</xsl:with-param> </xsl:otherwise> </xsl:when> <xsl:when test="$MemeZone256A='false'"> <xsl:when test="$MemeZone256B='false'" > <xsl:with-param name="sz">abc</xsl:with-param> </xsl:when> <xsl:otherwise> <xsl:with-param name="sz">ac</xsl:with-param> </xsl:otherwise> </xsl:when> </xsl:choose> </xsl:call-template>
avec le log associé
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 InputStream fXSLFile_o=getClass().getResourceAsStream("/xsl/IXM_isbd_o.xsl"); StreamSource stylesheet_o = new StreamSource(fXSLFile_o); TransformerFactory tFactorOutil = TransformerFactory.newInstance(); tFactory.setURIResolver(this); Transformer transformer_o = tFactorOutil.newTransformer(stylesheet_o); IxmIsbd.info("[tratiementpcl.java] : tfactory ixm_isbd_o.xsl OK"); // Intialisation à false IxmIsbd.info("Début initia new var"); try { transformer1.setParameter("MemeZone256A","false"); } catch(Exception e) { IxmIsbd.error("transformer1.setParameter("+telTypeNotices); IxmIsbd.error("transformer1.setParameter("+e.getCause()); IxmIsbd.error("transformer1.setParameter("+e.getMessage()); IxmIsbd.error("transformer1.setParameter("+e.getLocalizedMessage()); IxmIsbd.error("transformer1.setParameter("+e.getStackTrace()); }
Ce qui m'embête c'est que du côté java je n'ai pas d'erreurs avant de faire un setParameter()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Début initia new var 2010-10-26 17:22:35,922 [main] ERROR Transformation - transformer1.setParameter(cpl 2010-10-26 17:22:35,922 [main] ERROR Transformation - transformer1.setParameter(null 2010-10-26 17:22:35,922 [main] ERROR Transformation - transformer1.setParameter(null 2010-10-26 17:22:35,922 [main] ERROR Transformation - transformer1.setParameter(null 2010-10-26 17:22:35,922 [main] ERROR Transformation - transformer1.setParameter([Ljava.lang.StackTraceElement;@72167216
Cela veut dire que ma feuille Xsl est bien chargée.... ?
Du coup est-ce mon nouveau code Xsl qui ne va pas ? Je ne suis pas habitué à débuggeur ce langages, je suis preneur de toute astuce
merci de votre lecture.
Pegaz
Partager