Bonsoir,
je suis actuellement en train de developper un plugin Eclipse de generation de code qui s'appuie sur XSLT.
J'aimerais passer à un template XSL un parametre xsl:param qui contient un document XML, puis utiliser ce parametre dans mon template, pour faire ensuite du XPath.
Plus precisement, j'ai un fichier XML source (Hibernate) :
<hibernate-mapping>
....<property name="name" ...>
....<property name="login" ...>
Mon template XSL doit afficher la liste des elements property de mon fichier XML source (ex : name,login...). Jusqu'ici tout va bien.
Maintenant j'aimerais passer un DOM en parametre de mon template XSL pour filtrer les property. Je construit une chaine XML :
<propertiesSelected>
<propertySelcted name="login" >
</propertySelected>
Je le charge dans un Document XML (j'utilise Dom4J) et je le passe a mon processeur XSLT en tant que paramètre
transformer.setParameter("propertiesSelected", myDOM)
ou myDOM est org.dom4j.Document
Dans mon template XSL, j'ai declare le parametre propertiesSelected :
<xsl:param name="propertiesSelected" />
puis j'aimerais l'utiliser de la facon suivante pour filtrer mes property de mon fichier XML :
<xsl:test id="$propertiesSelected/propertySelcted[@name=$currentProperty]" >
...affiche la valeur de la property
(ou $currentProperty est la valeur courant de mon xsl:foreach sur mes property )
J'ai une erreur du type : 'Conversion incorrecte de 'org.dom4j.tree.DefaultDocument' en 'node-set'.'
Ma question est comment en XML, passer un document en tant que paramètre XSL? Comment construire un node-set' en Java? Y a t-il une autre solution que celle que je souhaite implementer?
Je vous remercie de votre aide.
Angelo
Partager