Subject: RE: extracting preceding nodes with certain exceptions
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Wed, 17 Sep 2003 04:43:10 +0100
|
>
> Hello all,
> I need some help with the following:
> I have (but could be variable):
> <tokens>
> <token position="1"/>
> <token position="2"/>
> <token-group>
> <row>
> <token position="3"/>
> <token posistion="4"/>
> </row>
> <row>
> <token position="5"/>
> <token position="6"/>
> </row>
> </token-group>
> </tokens>
>
> I would like to sum the values of all preceding nodes of
> <token> #6 that
> are <token>s, but which are not descendants of the preceding
> sibling of
> its ancestor <row>, that is I want to exclude <token>s #3 and
> #4.
In XPath 2.0 you can write
preceding::token except ancestor::row/preceding-sibling::token
Unfortunately XPath 1.0 has no direct equivalent of the "except"
operator. Some processors offer the EXSLT set:difference() extension
function or an equivalent, or you can do "A except B" by writing the
rather expensive construct:
A[count(.|B) != count(B)]
Michael Kay
I have sum(ancestor::row//token[@position <
> $token-position]) where
> in this case $token-position = 6, but that excludes the tokens in
> positions 1 and 2. I think I am missing something simple here, but
> suggestions are welcome.
> thanks in advance,
> Matthew L. Avizinis
> Gleim Publications, Inc.
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|