This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: If nodeset does NOT include


[Thomas Hartung]

> I want to call a template only if a nodeset does
> not contain a match for a variable, ie:
>
> <xsl:if test="(.//InqInfo/Member_Id != $listfor)">
>   <xsl:call-template
> name="Recipbutton">
>
> where != should mean "does not include"

Assuming that you mean that $listfor is the name of an child element of
Member_id, you can use

test='not(.//InqInfo/Member_id/*[name()=$listfor])'

or

test='count(.//InqInfo/Member_id/*[name()=$listfor])=0'

Other variations are possible, depending on exactly what you want to test
for.

You may also want to replace ".//" with some other construction if you need
to get more performance, since ".//" is likely to be slow.  That would only
matter if you have very large files or you need especially fast response
time.

Cheers,

Tom P


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]