Re: [xsl] Logic OR in the XPath

Subject: Re: [xsl] Logic OR in the XPath
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Thu, 23 Oct 2003 17:19:22 -0400
Dongling,

At 04:19 PM 10/23/2003, you wrote:
I need to check if a meember doesn't exist or its
value equals "N" then do something. How can I do that?

I have something here but didn't work. Please advise

<xsl:when test="not(./*[name(.) = 'Shared']) |
(./Shared/text() ='N')">

This doesn't work because the union operator "|" works only on node sets, whereas the two expressions on either side of it here both return Booleans. You can't unify two Booleans.


I think you want

test="not(Shared) or Shared='N'"

...or (unabbreviated form of the same)...

test="not(child::Shared) or child::Shared='N'"

Translated into English, this reads "when there is no "Shared" element child or when a "Shared" element child has (string) value = 'N'.

Cheers,
Wendell


====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread