[xsl] XPath expression to check that there are no intervening elements?

Subject: [xsl] XPath expression to check that there are no intervening elements?
From: "Costello, Roger L. costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 19 Jul 2016 15:44:16 -0000
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

Current Thread