Subject: Re: [xsl] recursivity and param From: Dimtre Novatchev <dnovatchev@xxxxxxxxx> Date: Thu, 12 Aug 2004 21:53:05 +1000 |
As other people have pointed out, the specific problem you provide does not require recursive processing at all -- a simple XPath expression suffices. The answer to your more general question (in case I understand it correctly) is provided by the Tree Visitor pattern, which is a generic pattern of transformation by visiting every node in a sequential (document) order. This provides for the finest level of granularity possible with XSLT. An obvious shortcoming may be the very deep recursive processing, however there are proven ways to solve this problem -- e.g. the DVC (Divide and Conquer) approach. As is the case with other patterns, because of its poer and generality, it should be used only when there are no other, more direct and efficient ways to solve a given problem. For detailed code see: http://www.biglist.com/lists/xsl-list/archives/200402/msg00866.html Cheers, Dimitre Novatchev. On Thu, 12 Aug 2004 12:32:35 +0200, Xavier Boully <xavier.boully@xxxxxxxxxxxxxxxx> wrote: > I would like to use recursivity through the source document with XSLT 1.0 > and no extension. > > As far as I understood, when I am at a node level, I have a context that I > can pass to children level using with-param. > But what I would like to obtain is to catch things from children treatment > to influence the context of the node level: when I pass context to a certain > child I would like to take in account things that happened before while > processing children I met before (in order of source document for example). > > Reading again that question make me think that it is maybe not clear enough. > Let's try an example. > - Suppose that in source tree we have some <to-copy-element /> elements > - Suppose that I just want my XSLTransformation to copy to the result tree > the <to-copy-element /> from the source tree. > - Suppose that I add a condition that I must not copy more than 10 > <to-copy-element />. In other words I want to copy only the first (in order > of source document) 10 <to-copy-element /> elements or all the > <to-copy-element /> elements if count(//to-copy-element)<11. > > I think (but this is maybe a wrong hypothesis) that at a given node level, I > have to pass to a child information about the number of copies done with > children processed before. > > Any ideas ? > > Xavier
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] RE : [xsl] recursivity and pa, Xavier Boully | Thread | [xsl] RE : [xsl] recursivity and pa, Xavier Boully |
Re: [xsl] extract xpath locator, Nicolas Mazziotta | Date | [xsl] RE : [xsl] recursivity and pa, Xavier Boully |
Month |