xsl-list
[Top] [All Lists]

Re: Copy path specified by parameter

2005-07-14 06:21:54

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



<Prev in Thread] Current Thread [Next in Thread>