This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Re: Template match via xsl:param


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]