xsl-list
[Top] [All Lists]

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

2018-06-14 19:11:47
Dimitre,

I like it (if it's efficiency we're after)!

Cheers, Wendell


On Thu, Jun 14, 2018 at 5:18 PM, Dimitre Novatchev
dnovatchev(_at_)gmail(_dot_)com 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
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(_at_)wendellpiez(_dot_)com
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> 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(_at_)mitre(_dot_)org
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> 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.




-- 
Wendell Piez | http://www.wendellpiez.com
XML | XSLT | electronic publishing
Eat Your Vegetables
_____oo_________o_o___ooooo____ooooooo_^
--~----------------------------------------------------------------
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>