Re: [xsl] How Do I Generate A Set-Difference With Context - Part A

Subject: Re: [xsl] How Do I Generate A Set-Difference With Context - Part A
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Sun, 13 Mar 2005 12:35:17 +1100
On Sun, 13 Mar 2005 00:52:23 +0000, Aron Bock <aronbock@xxxxxxxxxxx> wrote:

> Now for a question: each <story> has, say, a @date attribute; multiple
> stories in 1 feed may have the same @date value.  If I find a changed (or
> new) story, I want to pass through not just that story, but also all other
> stories with that same @date value, no matter they're unchanged.
> 
> My first thougth about accomplishing this is to perform some sort of
> pipeline processing (it's immaterial if it's done in-situ in the XSLT
> processor).  The first pass would generate a diff result, and a second pass
> would add back all stories of the same [unique] dates as the ones in the
> diff result.
> 
> It would be nice to do this in one [conceptual] pass:
> --for every story check if it should pass through
> --if a passthrough also pass through otheries stories with the same @date
> 
> Of course, a naive approach would have stories output multiply, unless I
> somehow "remember" what [say, dates] has already passed through.  I could do
> that in a procedural language, but don't know how to [efficiently] in a
> functional one such as XSLT.  While I read up on functional programming
> techniques, if anybody can suggest a way to accomplish this, please post.
> 
> Here are 2 sample feeds:
> 
> feed1.xml
> ======
> <feed>
>  <story @date="1" text="a"/>
>  <story @date="2" text="a"/>
> </feed>
> 
> feed2.xml
> ======
> <feed>
>  <story @date="1" text="a"/>
>  <story @date="1" text="b"/>
>  <story @date="2" text="a"/>
> </feed>
> 
> If feed2.xml were the "current" feed, and feed1.xml the propr one, I want to
> end up with the following, in 1 pass.
> 
> final.xml
> =====
> <feed>
>  <story @date="1" text="a"/>
>  <story @date="1" text="aa"/>
> </feed>
> 
> Thank you
> 
> --A

This is confusing:

   There is no "text" attribute with value "aa" in the two xml documents.


It's true that nobody's replied to the first post until now. I didn't,
because I didn't find a complete and clear description of the problem
-- one has to put some effort in specifying a problem in precise
manner, this is a logical pre-condition for people being able to help.

Additionally, if performance is to be optimised, this requires that
real (or at least realistic) input files are included.

Cheers,
Dimitre Novatchev.

Current Thread