Subject: [xsl] Re: XPath: selecting matching nodes in two node-sets From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Mon, 20 Oct 2003 22:39:37 +0200 |
"Richard Lewis" <richard.lewis@xxxxxxxxx> wrote in message news:200310201935.26843.richard.lewis@xxxxxxxxxxxx > So what I need is a XPath expression which says: > > select 'items' where every 'keywords/matches' is present in './matches'. Yes, this was not exactly said in your previous message. You said: "and what I need is an XPath expression which selects all the <item>s which have the same set of <matches /> elements as in the <keywords> node. (Note: there may be repetition of <matches />s in <item>s but not in <keywords>)" and this means not only that "every 'keywords/matches' is present in './matches' " but also that "./matches" should not contain anything elde (that is not in "keywords/matches") This is why the solution I recommended was: <xsl:variable name="vItems" select="/*/item"/> <xsl:for-each select="$vItems"> <xsl:copy-of select= "self::* [not(/*/keywords/matches [not(. = current()/matches)] ) and not(matches[not(. = /*/keywords/matches)]) ]"/> </xsl:for-each> Now what you want is simpler -- just remove the "and" and its second argument in the predicate: <xsl:copy-of select= "self::*[not(/*/keywords/matches[not(. = current()/matches)])]"/> ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] RE: XPath: selecting matc, Wendell Piez | Thread | RE: [xsl] RE: XPath: selecting matc, Michael Kay |
Re: [xsl] Is this node, the documen, David Carlisle | Date | [xsl] Re: Apply Templates question, Dimitre Novatchev |
Month |