Je débute avec XML et XSLT, et je suis en bute à un echec d'évaluation d'expression. Je vous expose le cas, constitué de 2 fichiers trés simples : essais.xml et essais.xsl. Ces deux fichiers sont à vocation de testes, ne leur chercher donc pas d'utilité immédiate... j'expérimente.
Essais.xml (dans lequel rien n'est à signaler) :
Code
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet type="text/xsl" href="essais.xsl"?>
<essais/>
Essais.xsl (source du problème) :
Code
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:transform
version = "1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
>
<xsl:template match="/essais">
<html>
<xsl:value-of select="string(123)"/><br/>
<xsl:value-of select="position()"/><br/>
<xsl:value-of select="current-dateTime()"/><br/>
</html>
</xsl:template>
</xsl:transform>
Je passe cela à la moulinette d'xsltproc (xsltproc -o essais.html essais.xsl essais.xml).
J'obtiens le message suivant :
Code
xmlXPathCompOpEval: function current-dateTime not found
XPath error : Unregistered function
xmlXPathCompiledEval: evaluation failed
runtime error: file essais.xsl line 7 element value-of
xsltValueOf: text copy failed
error: file essais.xml
xsltRunStylesheet : run failed
J'ai pensé à un problème d'espace de nom (notion que je connais mal), et j'ai alors préfixé les noms de fonctions par « fn: » (ex. <xsl:value-of select="current-dateTime()"/>), mais alors xsltproc, ne reconnais même plus string et position qu'il reconnaissait parfaitement avant.
Comment faire et que dois-je comprendre ?
Je suis bien embêté, parce que j'ai d'abord besoin d'une fonction qui me permette d'intégré automatiquement la date aux documents produits.
Merci pour tout.
P.S. Je ne sais pas si je suis sur le bon forum pour ce type de questions... ce n'est pas le cas, veuillez m'en exuser.
