Re: [xsl] Need an XPath expression for: $B is not contained in $A

Subject: Re: [xsl] Need an XPath expression for: $B is not contained in $A
From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 14 Jun 2018 21:17:45 -0000
Hi Wendell,

> "empty($A intersect $B//*)"

I think that generally using the ancestor-or-self:: axis will be more
efficient than using $B//*, because the depth of an XML document tends
to be fairly limited in size.

So:

     ($B/ancestor-or-self::* intersect $A)[1]

Cheers,
Dimitre

On Thu, Jun 14, 2018 at 1:34 PM, Wendell Piez wapiez@xxxxxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Hi,
>
> "not(some $b in ($B//*) satisfies ($b is $A))"
>
> (oh Roger came up with that.)
>
> or nicer?
>
> "empty($A intersect $B//*)"
>
> XPath 1.0:
>
> "count($B/**) = count($B//* | $A)"
>
> Cheers, Wendell
>
>
>
> On Thu, Jun 14, 2018 at 8:23 AM, Costello, Roger L. costello@xxxxxxxxx
> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> > Hi Folks,
> >
> > The variable $A contains an element.
> >
> > The variable $B contains an element.
> >
> > I need an XPath expression that determines if $B is not contained in $A.
> >
> > This XPath expression seems to work:
> >
> >     not(index-of($B/ancestor::*,$A))
> >
> > but that seems awful, i.e., not straightforward, convoluted, and probably inefficient.
> >
> > Is there a better (simpler, straightforward, efficient) XPath expression?
> >
> > /Roger
> >
>
>
>
> --
> Wendell Piez | http://www.wendellpiez.com
> XML | XSLT | electronic publishing
> Eat Your Vegetables
> _____oo_________o_o___ooooo____ooooooo_^
> 




-- 
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
-------------------------------------
To achieve the impossible dream, try going to sleep.
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they
write all patents, too? :)
-------------------------------------
Sanity is madness put to good use.
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.

Current Thread