In general in XPath if you want to find all nodes on an axis up to the first
one that satisfies condition X, the approach is:
following-sibling::node() except
following-sibling::node()[X][1]/following-sibling::node()
The except operator is in XPath 2.0 but not in XPath 1.0. In XPath 1.0, to
write "A except B", you code it as
A[count(.|B)!=count(B)]
You can expect the performance of the resulting expression to be fairly
awful; a recursive solution at the XSLT level that steps along the axis
until it finds a node satisfying X is likely to be much more efficient.
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: geoff hopkins [mailto:geoffhopkins123(_at_)yahoo(_dot_)com]
Sent: 11 August 2005 13:34
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] [xpath] all following sibling nodes upto first
occurace of specific text value
I understand this is a xslt forum but there does not
seem to be any decent xpath places...
I need a xpath expression to be used with a for-each
loop... context node is X.Parent select the next
items
until it finds the next occurance of X.Parent or
END-OF-DATA as the text value of the node
e.g. the following xml is a typical xml file
<?xml version="1.0" encoding="utf-8"?>
<root>
<node>X.Parent</node>
<node>Y.Child</node>
<node>Y.Child</node>
<node>X.Parent</node>
<node>Y.Child</node>
<node>END-OF-DATA</node>
</root>
Thanks...
Geoff
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--