empty((* except B) [following-sibling::B and preceding-sibling::B])
> On 19 Jul 2016, at 16:44, Costello, Roger L. costello@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> 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
|