On Mon, 2017-05-01 at 20:01 +0000, Dimitre Novatchev
dnovatchev@xxxxxxxxx wrote:
> > And here is an XPath 2.0 expression:
> >
[...[
> B B B B B B B empty(/*/*[not(self::A)][. >> /*/A[1] and /*/A[last()] >> .])
>
> This XPath expression happens to be slightly shorter (by 3
> characters)
> than the XPath 1.0 expression suggested by Dr. Michael Kay:
>
> B B B B B not(*[not(self::A)][following-sibling::A][preceding-sibling::A])
On the other hand even experienced APL programmers had difficulty
maintaining their programs at times... :) so I prefer using the named
axes.
The expressions are not exactly equivalent either, in general, if A
elements can occur at multiple places in the document.
--
Liam R. E. Quin <liam@xxxxxx>
The World Wide Web Consortium (W3C)
|