xsl-list
[Top] [All Lists]

[xsl] Count elements A up to any element B in an axis

2010-11-30 10:10:08
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


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--