Or perhaps
empty(B/following-sibling::*[not(self::B)]/following-sibling::B)
Michael Kay
On 19 Jul 2016, at 16:51, Michael Kay mike(_at_)saxonica(_dot_)com
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
empty((* except B) [following-sibling::B and preceding-sibling::B])
On 19 Jul 2016, at 16:44, Costello, Roger L. costello(_at_)mitre(_dot_)org
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
Hi Folks,
This XML has a solid block of <B> elements:
<Document>
<A/>
<B/>
<B/>
</Document>
This XML has an intervening <C> element:
<Document>
<A/>
<B/>
<C/>
<B/>
</Document>
I need an XPath expression to return a Boolean value:
Return true if there is one solid block of <B> elements
(no intervening elements).
Otherwise, return false.
I created a horrendous XPath expression to solve it:
count(B) eq (B[last()]/count(preceding-sibling::*)+1 -
B[1]/count(preceding-sibling::*))
Can you provide a better (simpler, more efficient) XPath expression?
/Roger
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--