Ben biçembente bir izde işaret dosya yollarını içeren benim oluşturulan çıkış dosyası istiyorum. Şablonlarının yer değiştirebilir ve stil sayfası için bir parametre kullanmak istemiyorum. Bunun için benim çözüm tam stil URI almak için:
<xsl:variable name="stylesheetURI" select="document-uri(document(''))" />
Şimdi sadece $stylesheetURI
adlı dosya kesmek gerekir. Bu XSLT'de PHP fonksiyonları basename ve dirname 2.0 klonlar yazmak için bana ilham kaynağı olmuştur:
<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>
Şimdi benim şablonda böyle bir şey yapabilirsiniz:
<img src="{concat(de:dirname($stylesheetURI),'/img/myimage,png')}" />
Benim soru: yerli XSLT 2.0 ile bunu gerçekleştirmek için daha iyi / daha hızlı yolları var mı?