[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
|