xsl-list
[Top] [All Lists]

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

2016-07-19 10:44:22
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
--~--

<Prev in Thread] Current Thread [Next in Thread>