Hi David,
thx a lot! Works like a charm. I missed out the () after not. Your code
has one typo. Instead of:
generate-id(following-sibling*[(_at_)newchapter='true'][1]
it shoud read
generate-id(following-sibling::*[(_at_)newchapter='true'][1]
... but spotting this was sporty <g>. What I would love to see is a
training vizualization software, where you can click 2 nodes and it starts
generating the xpath expressions and color the axis and all such stuff. Do
you know one?
;-) stw
David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk> wrote on 14/07/2004 23:12:58:
Firstly this is essentially a grouping problem so you could do worse
than
http://www.jenitennison.com/grouping
but to answer your questions:
How to test for the non-existance of an
attribute.
test="not(@foo)" or test="not(element/@foo)" if the attributes not on
teh current element. this is not special syntax it is just part of teh
general scheme of things, @foo is an Xpath which selects all attributes
called foo, a node set used in a boolean test counts as false just if
the node set is empty, which it will be in this case if there are no foo
attributes.
And how to select a subset of the following siblings.
The rule: all following siblings until you find one with an existing
attribute newchapter='true'.
This is harder in Xpath1 (and Jeni's grouping pages will show how you
can use keys to avoid answering it directly) but
you can do this as follows: firstly identify the next such element
<xsl:variable name="x" select=generate-id(following-
sibling*[(_at_)newchapter='true'][1])"/>
Then select all following siblings that have the property that _their_
first following sibling is the same one:
select="following-sibling::*[generate-id(following-
sibling*[(_at_)newchapter='true'][1])=$x]"
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. 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>
--+--