This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Re: Template match via xsl:param
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Tue, 15 Jan 2002 02:25:55 -0800 (PST)
- Subject: [xsl] Re: Re: Template match via xsl:param
- Reply-to: xsl-list at lists dot mulberrytech dot com
> > Can anyone give me a simple example on how to achieve this without
> > genereting the xsl file on the fly?
>
> You can't, I'm afraid.
>
> If the $path parameter only specifies an element name, then what you
> could do is change the xsl:include to an xsl:import, and have the
> following template, which matches all elements, and goes on to process
> them with whatever's supplied in identity.xsl unless their name is the
> same as the $path parameter:
>
> <xsl:template match="*">
> <xsl:if test="name() != $path">
> <xsl:apply-imports />
> </xsl:if>
> </xsl:template>
>
> If the $path is a more complex path, you could extend this solution to
> do more elaborate checks on the identity of the element (rather than
> just looking at its name) before going on to process it (or not).
>
> Because of predicates, trying to implement a path pattern matcher in
> XSLT is just as hard as trying to implement an XPath evaluator in
> XSLT. But then probably the patterns that you're actually using are a
> subset of the patterns that would be allowed in the match attribute,
> so you might be able to make it work.
>
> Otherwise, as you say, you need to generate the XSLT stylesheet on the
> fly.
There's an option not to ***generate*** a stylesheet, but to use a single stylesheet
and set the value of the "select" attribute of a given xsl:variable or xsl:param to
the desired XPath expression. Once this is done (e.g. via DOM), then the
transformation may be applied.
This is essentially how the XPath Visualiser works.
Cheers,
Dimitre Novatchev.
__________________________________________________
Do You Yahoo!?
Send FREE video emails in Yahoo! Mail!
http://promo.yahoo.com/videomail/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list