RE: [xsl] Need help using variable in select statement

Subject: RE: [xsl] Need help using variable in select statement
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 26 Sep 2005 16:11:20 +0100
Variables in XPath represent values, they don't (like macro variables in a
shell language) represent bits of text to be inserted textually into an

To evaluate an XPath expression read at run-time from a source document, use
an xx:evaluate() expression if your XSLT processor offers one. This can't be
done in pure XSLT without extensions. Namespace prefixes can make it messy
even with extensions.

Michael Kay

> -----Original Message-----
> From: Frank Stoner [mailto:fstoner@xxxxxxx] 
> Sent: 26 September 2005 15:38
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Need help using variable in select statement 
> I'm trying to mimic the functionality of a tag used in  
> documenting .NET C# code.
> The tag identifies a file and path location of xml content to merge  
> into the source document.
> <include file="content.xml" path="/Top/Child[@name='Me']/*" />
> The template that I have written to translate this tag is simply:
> <xsl:stylesheet version="1.0" xmlns:xsl=" 
> Transform">
>      <xsl:template match="include">
>          <xsl:variable name="file" select="@file"/>
>          <xsl:variable name="path" select="@path"/>
>          <xsl:copy-of select="document($file)$path"/>
>      </xsl:template>
> </xsl:stylesheet>
> The problem is that the use of the $path variable in the "select="  
> statement seems to violate some syntax rule and all I get is a  
> complaint about an unexpected token on that line.
> Now if I substitute the variable value "Top/Child[@name='Me']/*" in  
> place of the "$path" variable, the template works as expected.
> I've tried a number of ways to build the select statement, but none  
> have worked out.  Any suggestions?
> Thanks,
> Frank

Current Thread