xsl-list
[Top] [All Lists]

Re: finding lowest level in ancestor:: axis

2006-01-26 15:44:46

<xsl:variable name="parent"
    select="id(@idref)/ancestor::div10 |

Thi selects a node set of all the relevant elements. As the name "set"
implies node sets are unordered, so it makes no difference how you
arrange the terms with | .  | is set union and a | b is the same as b | a.

However generate-id() takes a single node and returns its id so if you
give it a node set, as with most xslt1 functions, it sorts the nodes
into document order and uses the 1st node,silently discarding the rest.

I think you want $parent to be the nearest ancestor of the idrefed node
whose name starts with div so that's

select="id(@idref)/ancestor-of-self::*[starts-with(local-name(),'div')][1]"

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

--~------------------------------------------------------------------
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>
--~--