|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: composing file reference for document() based on x
[Joel P Thornton]
> I'm trying to piece together a file reference for use in a document() call
> in my XSL. I want to specify part of the referenced document's path via a
> text node from my xml input tree.
>
> Here is what I've got so far, but it does not work:
>
> <xsl:copy-of select="document({/root/state/site/physical-site/root} +
> '/xml/navigation.xml')"/>
>
> So, if the text node at /root/state/site/physical-site-root is
> 'c:/inetpub/wwwroot', then I want the argument to my document() function
to
> be 'c:/inetpub/wwwroot/xml/navigation.xml'. I'm just not quite sure what
> the right syntax is for doing this.
>
It doesn't work because the attribute template mechanism (with the curly
braces {}) is for putting attribute values into the output tree, not into
xslt instructions.
I just tested this and it works (msxml3 and saxon both):
<xsl:variable name='half-path'
select='/root/state/site/physical-site/root'/>
<xsl:variable name='full-path'
select="concat($half-path,'/xml/navigation.xml')"/>
<xsl:copy-of select='document($full-path)'/>
Here's the xml file I used with this stylesheet:
<root>
<state>
<site>
<physical-site>
<root>file:///d:\test</root>
</physical-site>
</site>
</state>
</root>
You could skip the variables and do everything at once, but this way it's a
lot easier to understand what's being done.
Cheers,
Tom P
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








