atom feed6 messages in com.mulberrytech.lists.xsl-listRe: [xsl] Getting the path to the sty...
FromSent OnAttachments
Ihe OnwukaJul 5, 2012 7:00 am 
Michael KayJul 5, 2012 7:05 am 
Ihe OnwukaJul 5, 2012 7:22 am 
Martin HonnenJul 5, 2012 7:27 am 
Michael KayJul 5, 2012 7:41 am 
G. Ken HolmanJul 5, 2012 6:45 pm 
Subject:Re: [xsl] Getting the path to the stylesheet
From:G. Ken Holman (gkho@CraneSoftwrights.com)
Date:Jul 5, 2012 6:45:38 pm
List:com.mulberrytech.lists.xsl-list

At 2012-07-05 15:22 +0100, Ihe Onwuka wrote:

On Thu, Jul 5, 2012 at 3:06 PM, Michael Kay <mi@saxonica.com> wrote:

On 05/07/2012 15:00, Ihe Onwuka wrote:

What is the standard way of getting the absolute path to a stylesheet so that references in the result tree can be resolved relative to it.

Call the static-base-uri() function.

Sorry for not clarifyingl, does that work for XSLT 1.0, if not what does.

The example below shows you get the base URI of the stylesheet when using XSLT 1.0. I've needed this when working with the OASIS specification stylesheets.

I hope this helps.

. . . . . . . . . . Ken

~/t/ftemp $ pwd /Users/admin/t/ftemp ~/t/ftemp $ xslt ihe.xml ihe.xsl

Stylesheet URI: file:/Users/admin/t/ftemp/ihe.xsl

~/t/ftemp $ cat ihe.xsl <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xsl:stylesheet [ <!NOTATION xsl SYSTEM ""> <!ENTITY static-base-uri SYSTEM "" NDATA xsl> ]> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output method="text"/>

<xsl:template match="/"> <xsl:variable name="static-base-uri"> <xsl:for-each select="document('')"> <xsl:value-of select="unparsed-entity-uri('static-base-uri')"/> </xsl:for-each> </xsl:variable> Stylesheet URI: <xsl:value-of select="$static-base-uri"/> <xsl:text>&#xa;&#xa;</xsl:text> </xsl:template>

</xsl:stylesheet> ~/t/ftemp $ cat ihe.xml <?xml version="1.0" encoding="UTF-8"?> <doc/> ~/t/ftemp $