Bonjour,
Le fichier XSLT utilisé se trouve comme ressource dans le JAR.
Le programme java crée un fichier XML temporaire utilisé par la transformation XSLT, puis il appelle cette transformation XSLT.
C'est le programme java qui envoie le chemin du fichier annexe XML (en tant que paramètre) à la transformation XSLT.
Cela fonctionne très bien dans Eclipse... seulement, dès que tout est placé dans le jar, ça ne fonctionne plus: la transformation XSLT ne trouve pas le fichier XML annexe.
Pourtant, le fichier XML annexe est bien créé et c'est le bon chemin qui est envoyé comme paramètre à la transformation XSLT.
Quelqu'un aurait-il une idée de solution?
Un peu de code pour ponctuer tout ça!
Appel à la transformation dans java ( javax.xml.transform), avec le xslt qui est utilisé à partir du jar.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 URL xsltLocation = MyClass.class.getResource(XSLT_FILE); TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(new StreamSource(xsltLocation.toURI().toString())); transformer.setParameter("xmlreport", TEMP_XML_REPORT); ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream(); transformer.transform(new StreamSource(new File(fileName)), new StreamResult(bytearrayoutputstream));
Utilisation du fichier XML créé au préalable lors de la transformation XSLT:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ... <xsl:param name="xmlreport"/> ... <xsl:if test="document($xmlreport)//validation = 'OK'"> ...plein de trucs chouettes... </xsl:if> ...
Partager