[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] Count Ancestors Up To But Not Including a Given Type
Subject: [xsl] Count Ancestors Up To But Not Including a Given Type
From: Eliot Kimber <ekimber@xxxxxxxxxxxx>
Date: Tue, 05 Feb 2008 01:18:09 -0600
|
Maybe it's the lateness of the hour but I'm finding myself stymied on
what I hope is relatively simple check.
In DITA, as in many doctypes, you can have nested lists of the form:
<ol>
<li>
<ol>
<li>
</li>
</ol>
</li>
</ol>
As well as an intermixing of different list types, e.g.:
<ol>
<li>
<ul>
<li>
<ol>
<li>
What I need to do is determine, for a given li, its depth of nesting
within unbroken ancestry of a given list type.
Thus, int the first example, the deepest li is a level 2 because it has
two ancestor <ol> elements with no intervening <ul> (or other non-list
element that might occur within <li> and itself contain a list). In the
second example, the deepest <li> is a level one because there is an
intervening <ul> between the two <ol> ancestors.
I can't for the life of me figure out either a single expression or a
recursive function that will return the correct answer.
What bit of logic am I failing to see? I am using XSLT 2.
Thanks,
ELiot
--
Eliot Kimber
Senior Solutions Architect
"Bringing Strategy, Content, and Technology Together"
Main: 610.631.6770
www.reallysi.com
www.rsuitecms.com
|