<xsl:param name="path" select="'/part[1]'"/>
that sets $path to be a string not an XPath (You can't hold expressions
in XPath variables)
so
<xsl:template match="$path">
is the same as
<xsl:template match="'/part[1]'"">
and will report an error that a pattern must select nodes not strings.
If you really must have a string then you will need to use an evaluate
extension function that can evaluate an Xpath stored in a string. I
assume you are using saxon8 which has such an extension in which case
you just need
<xsl:template match="/">
<xsl:copy-of select="saxon:evaluate($path)"/>
but a more natural way for xslt would be to not pass in a string but
rather pass in a sequence selected by teh xpath so have a default of
<xsl:param name="path" select="/part[1]"/> <!-- default value -->
and then you could just use
<xsl:sequence (or copy-of) select="$path"/>
Most API's (other than the command line) let you set parameters to be
sequnces (node-sets in xpath 1 terminology)
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--