--- David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk> wrote:
Is there any way to select or process the siblings
in
between one top-level <div*> and the next,
especially
with something that only uses XPath 1.0?
Yes this is a grouping problem, see the usual places
like Jeni's site.
one way:
<xsl:key name="x" match="node()"
use="generate-id((..|preceding-sibling::div1|
preceding-sibling::div2|preceding-sibling::div3)[last()])"/>
Then
sitting on the parent
for-each select=".|div1|div2|div3"
the requested set of nodes is
key('x',generate-id(.))
*If* I understand that correctly -- and that's a big
if -- the nodes returned by key('x',generate-id(.))
would be the nodes that bound each portion of content
that I'm trying to collect. If I wanted to ignore the
content between successive <div1>s, this would be
helpful. However, I don't see how the node set
returned by the call to "key" could be input to
anything that would actually retrieve content between
successive <div*>s.
Maybe I wasn't clear enough. What I want to do is
collect the siblings following one top-level <div*>
but preceding the next top-level <div*> so that I
could, for example, render them within the page
sequence containing the contents of the <div> that
preceded them.
__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - File online, calculators, forms, and more
http://tax.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list