RE: [xsl] Contains

Subject: RE: [xsl] Contains
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 30 May 2005 19:41:01 +0100
> Having trouble with contains.  I have a set of elements derived from a
> source xml which contains the parts of an email that are bad, that I'd
> like to ignore in my result.  An example would be the domain of my
> hosting company like so it would be listed as "lfchosting.com" and
> another element might be "directnic.com".
> 
> So I have:
> 
>     <xsl:if test="not(contains($bad_emails_contains,.))">
>        ... do my result ...
>     </xsl:if>

If $bad_emails_contains is a set of elements, then this won't work. The
contains() function expects a string. I think you might be trying to test
whether a node-set contains a given node (*please* don't try to guess what a
function does from its name alone!), in which case the XSLT 1.0 solution is

count($nodeset | $node) = count($nodeset)

The 2.0 solution is

exists($nodeset[. is $node])

Michael Kay
http://www.saxonica.com/

Current Thread