RE: [xsl] Overlapping structures

Subject: RE: [xsl] Overlapping structures
From: "Michael Kay" <mhkay@xxxxxxxxxxxx>
Date: Tue, 9 Oct 2001 15:18:00 +0100
> I have an XML document with two overlapping structures.  To
> get round this,
> for one of the structures I use empty "start" and "end" tags
> as follows:
>
> <a>I said <z.start/>I will watch my ways</a>
> <a><x/>and keep my tongue from sin<z.end/></a>
>
> In my XSL I want to test, from any node <z.start/> if there is the
> additional empty element <x/> before the next <z.end/> (i.e. if the
> imaginary "z" element "contains" x).  I have not found any
> way I can achieve
> this -- any pointers please?

I think this is a really tough one to crack in XSLT. I think I would do it
by writing a SAX filter to "flip" the two structures, so that one form is as
you've shown it, and the other is

<a.start/>I said <z>I will watch my ways<a.end/>
<a.start/><x/>and keep my tongue from sin</z><a.start/>

This is much easier to do my manipulating tags than by manipulating nodes,
so a SAX filter (or, as you say, a Perl script) is an easier way of doing it
than XSLT.

Of course, someone may prove me wrong...

Mike Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread