我想我的生成輸出文件包含指向相對於樣式表的路徑的文件路徑。樣式表的位置可以改變,我不想爲樣式表使用參數。我對這個解決方案是得到充分的樣式表的URI:在XSLT中做文件路徑操作
<xsl:variable name="stylesheetURI" select="document-uri(document(''))" />
現在我只需要從$stylesheetURI
切斷文件名。這啓發了我寫XSLT的PHP函數basename和dirname 2.0克隆:
<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>
現在我可以做這樣的事情在我的模板:
<img src="{concat(de:dirname($stylesheetURI),'/img/myimage,png')}" />
我的問題是:有沒有更好的/用本機XSLT 2.0實現這一點的更快方法?
我很喜歡在這個問題上工作(+1)。看到我的答案似乎快了25%。 :) – 2010-06-25 13:18:49