Re: [xsl] Need help OR'ing in XPATH.

Subject: Re: [xsl] Need help OR'ing in XPATH.
From: Glen Mazza <grm7793@xxxxxxxxxxx>
Date: Wed, 22 Mar 2006 07:24:51 -0500
-------- Mensaje original --------
Asunto: Re: [xsl] Need help OR'ing in XPATH.
Fecha: Wed, 22 Mar 2006 14:25:38 +0530
De: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Responder a:: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Para: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Referencias: <4420F165.2070309@xxxxxxxxxxx>

Please try this

<xsl:apply-templates select="book[(owner = 'aaa') or (chapter/owner =
'aaa')]" />


That solved it, thanks Mukul (and Michael).


Glen


Regards,
Mukul

On 3/22/06, Glen Mazza <grm7793@xxxxxxxxxxx> wrote:

Hello,

For my contrived example below, I would like to select all book nodes
whose owner is "aaa" *or* which have a chapter whose owner is "aaa", and
I would like the books to be retrieved in the same general order as the
xml document, i.e., the query for the example below would process books
with id's 1, 3, 4 (in that order), not 1, 4, 3.

I can do the XPATH for *either* of the two cases, but don't know how to
combine the two for an OR search in my xsl:apply-templates select statement.


<xsl:a-t select="book[owner='aaa'] or book/chapter[owner='aaa']"/>

is kind of what I want, but Xalan is complaining that my select
attribute is just returning a boolean, so my syntax is apparently wrong.

Any help would be much appreciated.

Thanks,
Glen


<book id="1"> <owner>aaa</owner> <chapter> <owner>bbb</owner> </chapter> <chapter> <owner>ccc</owner> </chapter> </book> <book id="2"> <owner>bbb</owner> <chapter> <owner>bbb</owner> </chapter> <chapter> <owner>ccc</owner> </chapter> </book> <book id="3"> <owner>ccc</owner> <chapter> <owner>aaa</owner> </chapter> <chapter> <owner>ccc</owner> </chapter> </book> <book id="4"> <owner>aaa</owner> <chapter> <owner>bbb</owner> </chapter> <chapter> <owner>ccc</owner> </chapter> </book>

Current Thread