Re: [xsl] (newby) extraction of CDATA nodes to different XML files

Subject: Re: [xsl] (newby) extraction of CDATA nodes to different XML files
From: <dalloro@xxxxxxxxx>
Date: Fri, 1 Apr 2005 13:47:20 +0200
On Apr 1, 2005 1:31 PM, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> >      Maybe all the guy wants to do is copy the contents of the cdata
> > sections to individual files.
> 
> Yes, perhaps, I was waiting for further clarification of the requirement.

Yes, that's part of my problem. As you've already clarified I cannot
select exactly wat I desire from the CDATA (that was the other part of
the problem) thus waht remains is to save the contents of CDATA
sections outside.

> >
> > As one of the solutions mentioned,
> > if the 3 nodes containing cdata sections were
> >
> > <foo><![CDATA[   .....snip.....   ]]></foo>
> > <bar><![CDATA[   .....snip.....   ]]></bar>
> > <foobar><![CDATA[   .....snip.....   ]]></foobar>
> >
> > All he needs is 3 templates and the logic to write the content out to
> > individual files can be nested in those templates.
> >
> > As for writing to multiple files, I remember reading
> > somewhere XSLT is not good at this sort of thing.
> 
> In XSLT 2.0 you can write multiple files using xsl:result-document.

it sounds interesting, I will take a look around to learn more about that tag.
 
> However, logically you do it the same way in 1.0: you run three passes over
> the input, one to produce each output file. The only difference in 2.0 is
> that these three passes can be done in the same transformation.

Well, actually this is the approach I was thinking about, but tryng to
figure out how to develop such a multi-pass transformation, I got into
the following problem: how can a template recognize that it has being
applied multiple times and thus, how can it decide which CDATA section
to process, among the three?
I suppose I should at first (1) define an XPath pattern to match
elements that are at the same level in the tree (the elements that
contain the CDATA sections), then (2) I would have to implement a kind
of recursive template call mechanism.

Sounds it correct? 
Have you any ideas about the two points?

Thanks for the help.

Livio
 
> Michael Kay
> http://www.saxonica.com/

Current Thread