Subject: RE: Got xml base path in the xslt file
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 16 Sep 2009 08:05:16 +0100
|
This is what the rarely-used second argument of the document() function is
for. If you change the call from
document($filename)
to
document($filename, /)
then the relative URI is interpreted relative to the base URI of the source
document.
In XSLT 2.0 you can use resolve-uri() explicitly to construct the absolute
URI any way you like.
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
> -----Original Message-----
> From: Dongsheng Song [mailto:dongsheng.song@xxxxxxxxx]
> Sent: 16 September 2009 03:29
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Got xml base path in the xslt file
>
> Hi all,
> I use a xsl file to merge multiple xml files, the master xml
> file like this:
>
> <doc>
> <doc id="Intro" />
> <doc id="Configuration" />
> <doc id="Index" />
> </doc>
>
>
> The xsl file like this:
>
> <xsl:for-each select="doc/doc">
> <xsl:variable name="fileName"><xsl:value-of select="@id"
> /><xsl:text>.xml</xsl:text></xsl:variable>
>
> <xsl:for-each select="document($fileName)">
> <xsl:copy-of select="doc/div"/>
> </xsl:for-each>
> </xsl:for-each>
>
> Because the file path is relative of the xsl file for 'document'
> function, I have to put xsl and xml files together.
> Can I got the base path of master xml file, so I can store
> xsl and xml file separately?
>
> Regards,
> Dongsheng Song
| Current Thread |
|
Michael Kay - 16 Sep 2009 07:05:43 -0000 <=
Andrew Welch - 16 Sep 2009 09:06:41 -0000
|
|