Re: [xsl] trouble checking "cousins"of current node

Subject: Re: [xsl] trouble checking "cousins"of current node
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Fri, 21 Sep 2001 12:47:34 -0400
Chris,

How are you doing it now?

It seems to me that this is the kind of problem that is more easily solved, if you work to solve a more general problem. For example, instead of checking the next event, you could devise a way of locating all events with the same element name ('war', 'civic-event' and so forth) and the same title. Keys would be a good way to do this.

Otherwise, the following:: axis is your friend. You can always traverse from the current node to find all nodes following it that meet certain criteria. So for example,

following::*[name()=name(current()) and @title=current()/@title]

would traverse from any node to any following node with the same name and title attribute.

If this isn't enough help (maybe I've misread your problem), maybe you could post your present XSLT and an example of the output you would like.

Cheers,
Wendell

At 12:13 PM 9/21/01, you wrote:
I have some XML that I can best describe this way.  It is like notes taken
from a college history class.  Each <document> represents one class, and
each subdocument element represents a specific event or time period (i.e.
<war>, <legislation>, <civic-event>,etc.).

One way I want to use this XML is to create one document that contains all
the notes from every class.  However, the professor would sometimes be in
the middle of describing an event when class time was over, so he would
continue it next time.  But next time he wouldn't always start right away
with what was incomplete from before.

The notes have been transcribed into XML just as they were given in class.
I have written a script using XSL to go through and make sure the
subdocument elements that were incomplete in one class have a corresponding
completed element in a following class.  But my problem is when the
professor left something incomplete in one class, talked about something
completely different in the next, and then finished the incomplete topic in
the third class.

<root>
   <document date="2001.06.03">
      <war title="a" complete="yes">
         . . .
      </war>
      <legislation title="b" complete="yes">
         . . .
      </legislation>
      <war title="c" complete="no">
         . . .
      </war>
   </document>
   <document date="2001.06.10">
      <civil-event title="d" complete="yes">
         . . .
      </civil-event>
   </document>
   <document date="2001.06.17">
      <war title="c" complete="continued">
         . . .
      </war>
      <exploration title="e" complete="yes">
         . . .
      </exploration>
   </document>
<root>

Using XSL, I look for all tags that have an @continued="no" and make sure
it is followed by a corresponding tag with @complete="continued" and
matching @title values.  But how can I identify situations above where
<civil-event title="d"> comes between the beginning and end of <war title
="c">?


======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


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



Current Thread