Subject: RE: 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
|