Je voudrais que mon fichier de sortie généré contienne des chemins de fichier pointant vers un chemin relatif à la feuille de style. L'emplacement de la feuille de style peut changer et je ne souhaite pas utiliser de paramètre pour la feuille de style. Ma solution pour cela est d'obtenir l'URI complet stylesheet:Faire des manipulations de chemin de fichier dans XSLT
<xsl:variable name="stylesheetURI" select="document-uri(document(''))" />
Maintenant, je ne ai besoin de couper le nom de fichier $stylesheetURI
. Cela m'a incité à écrire des clones XSLT 2.0 des fonctions PHP basename et dirname:
<xsl:function name="de:basename">
<xsl:param name="file"></xsl:param>
<xsl:sequence select="tokenize($file, '/')[last()]" />
</xsl:function>
<xsl:function name="de:dirname">
<xsl:param name="file"></xsl:param>
<xsl:sequence
select="string-join(tokenize($file, '/')[position() != last()], '/')" />
</xsl:function>
Maintenant, je peux faire quelque chose comme ça dans mon modèle:
<img src="{concat(de:dirname($stylesheetURI),'/img/myimage,png')}" />
Ma question est: Y at-il une meilleure/des moyens plus rapides pour accomplir cela avec natif XSLT 2.0?
J'ai aimé travailler sur cette question (+1). Voir ma réponse pour ce qui semble être 25% plus rapide. :) –