Subject: Count elements A up to any element B in an axis
From: "Christian Roth" <roth@xxxxxxxxxxxxxx>
Date: Tue, 30 Nov 2010 17:09:46 +0100
|
Hello,
using XSLT 2.
Effectively, I need to determine the level of a (possibly nested) list I
(=context node) am at.
I thought I would do this by counting my ancestor list elements A.
However, certain elements along that axis establish a new level-counting
context (e.g. a table cell or a footnote, B), so I only want to count
until such an element first appears in the ancestor chain.
My current solution is
count(
ancestor-or-self::A[ . >> ancestor::node()[self::B or /][1] ]
)
Is this a correct and good way (both in being a generic enough pattern
to re-use for such problems and performance) to do it, or are there
better ways?
-Christian
|