Re: [xsl] image path by unparsed-entity-uri()

Subject: Re: [xsl] image path by unparsed-entity-uri()
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Mon, 04 Oct 2010 10:57:02 +0100
The function unparsed-entity-uri() is defined to return the absolute URI of the entity, not the relative URI as written in the source document. If you want to reconstruct a relative URI, you'll have to do some (non-trivial) manipulation of what's returned.

Michael Kay
Saxonica

On 04/10/2010 10:40 AM, JS rawat wrote:
Hi Team,
Can we get the appropriate path as describe in input by
unparsed-entity-uri().

XSLT
<xsl:template match="graphic">
  <graphic>
   <xsl:copy-of select="@id"/>
   <xsl:if test="@fileref">
    <xsl:attribute name="src"><xsl:value-of
select="@fileref"/></xsl:attribute>
   </xsl:if>
   <xsl:if test="not(@fileref)">
    <xsl:call-template name="entifyref">
     <xsl:with-param name="figname"
select="unparsed-entity-uri(@entityref)"/>
    </xsl:call-template>
   </xsl:if>
  </graphic>
</xsl:template>

<xsl:template name="entifyref">
  <xsl:param name="figname"/>
  <xsl:attribute name="src"><xsl:value-of select="$figname"/></xsl:attribute>
</xsl:template>


input <!DOCTYPE article abd.dtd"[ <!ENTITY F0001 SYSTEM ".\Fig\F0001.gif" NDATA GIF> ]> <article> <para><graphic entityref="F0001"/></para> </article>

output
<book>
<p><graphic src="file:/d:/Jobs/xsl/abc/xslt/Fig/F0001.gif"/></p>
</book>

required output
<book>
<p><graphic src="./Fig/F0001.gif"/></p>
</book>

Current Thread