J'essaye de transformer un xml xml en xml (pour le transformer plus tard en pdf using la bibliothèque de FOP). Le JDK que j'utilise est 1.5, et je ne peux pas en utiliser un autre (c'est ce que l'entreprise que je travaille utilise). J'ai lu que le pot xalan de java 1.5 est celui responsable de l'erreur. Le texte qui provoque l'erreur est:ERREUR: 'Le premier argument de la fonction Java non statique' evaluate 'n'est pas une référence d'objet valide.' lorsque j'utilise TrasformFactory
"dyn:evaluate($xpath)"/>
dans:
<xsl:variable name="paramName" select="@name"/>
<xsl:variable name="xpath"
select="concat('/doc/data/',$paramName)" />
<fo:inline>
<xsl:value-of select="dyn:evaluate($xpath)"/>
</fo:inline>
</xsl:template>
est-il un moyen arround sans changer le pot? Y a-t-il un moyen de l'écrire différemment? ou suis-je en utilisant la mauvaise syntaxe?
Merci pour votre aide
Désolé de ressusciter ce fil mort; J'ai le même problème. La déclaration correcte de l'espace de noms ne résout pas le problème FWIW. –
@Laird Nelson - Je viens juste de (re) vérifier que ça marche pour moi. Avez-vous une erreur ou ne produisez-vous pas le résultat attendu? Vérifiez que vous avez également 'extension-element-prefixes =" dyn "' et que votre expression XPath est correcte. Peut-être poster un petit exemple et poser comme une question pour obtenir une deuxième paire d'yeux? –
Le problème est que l'implémentation par défaut de 'javax.xml.transform.TransformerFactory' produit un' Transformer' qui, sous les couvertures, utilise le Xalan XSLTC _compiler_, pas _interpreter_, et 'dyn' dans ce cas n'est pas supporté. Voir https://xalan.apache.org/xalan-j/extensions_xsltc.html#exslt_ext. –