Re: [xsl] RE: XPath: selecting matching nodes in two node-sets

Subject: Re: [xsl] RE: XPath: selecting matching nodes in two node-sets
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Mon, 20 Oct 2003 15:54:35 -0400

I suspected it might be a bit more.

How about

not(/keyword/matches[not(.=current()/matches)])" and
not(/keyword/matches != matches)

Tests true if every keyword/matches is represented in ./matches, and there are no keyword/matches not in ./matches.


At 02:35 PM 10/20/2003, you wrote:
Thanks for the ideas.

It seems I probably haven't made myself clear!

The project I'm working on is a record library.

The top-level method is:

'library.xml' -->
--> 'simple-search.xsl' --> [select 'items' which contain ANY
                                        of the keywords] -->
--> 'results.xml' -->
--> 'display-results.xsl' --> [select 'items' which contain ALL of the
                                        keywords] -->
--> HTML output

The the 'results.xml' document contains a single 'keywords' node:


and any number of 'item' nodes:

        <title>Medieval English Song</title>
        <title>Kevin Volans Songline Quartets</title>
(Note: the 'item' nodes in 'library.xml' contain a lot more data)

So what I need is a XPath expression which says:

select 'items' where every 'keywords/matches' is present in './matches'.

so I tried:
"//item[matches = //keywords/matches]"

but this returned 'items' where any keywords matched.

Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.      
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:

Current Thread