[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: If nodeset does NOT include
Hi Brian, >> 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" >> I know it's a stupid question, but I can't see a >> simple, straightforward way to do this. > > != means "does not equal"--not quite the same thing. If you want to > test if $listfor does not exist within Member_Id, you could try: > > <xsl:if test="not(contains(.//InqInfo/Member_Id,$listfor))"> > <xsl:call-template name="Recipbutton"/> > </xsl:if> > > (newbie post--please correct me as necessary!) OK :) The contains() function tests whether the first argument string contains the second argument string. For example: contains('foobar', 'ob') would be true. What Thomas was wanting to do, I believe, is to see whether any of the Member_Id elements in the document contain the value $listfor, and if not then call the Recipbutton template. In other words, he wants to test whether any of the nodes in the node set have a value that is *equal to* $listfor. Contains() doesn't do that. He needs: <xsl:if test="not(.//InqInfo/Member_Id = $listfor)"> <xsl:call-template name="Recipbutton" /> </xsl:if> I think. When you pass a node set to a function that wants a string, the node set is converted to a string by taking the value of the first node in the node set. So your suggestion of: not(contains(.//InqInfo/Member_Id, $listfor)) would actually return true if the first Member_Id didn't contain the value of the $listfor variable, and false otherwise. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|