Altova Mailing List Archives>Archive Index >xsl-list Archive Home >Recent entries >Thread Prev - [xsl] Correct way to test for no match [Thread Next] Re: [xsl] Correct way to test for no matchTo: xsl-list@-----.------------.--- Date: 10/1/2009 9:45:00 PM Dan, At 04:04 PM 10/1/2009, you wrote: >I have a structure where I need to match values between w element >attributes. These elements are in different parst of the document. >Problem I'm trying to solve is when there is a typo in one of the >attributes and there is no match. I thought this would do it, but it's not ><xsl:when >test="ancestor::ipb/figure/subfig/graphic[@boardno=$sht_num]/@boardno"> > >same with this > ><xsl:when >test="ancestor::ipb/figure/subfig/graphic[@boardno=$sht_num]/@boardno = ''"> > >Any suggestions? I think you probably want "ancestor::ipb/figure/subfig/graphic/@boardno=$sht_num" as a positive test -- this will be true if there is a match (there exists a graphic/@boardno in that place whose value is $sht_num). This is a somewhat more direct version of your first effort, which is true when there are ancestor::ipb/figure/subfig/graphic elements whose @boardno = $sht_num, by virtue of the fact that they (necessarily) have a @boardno. But I'm not sure you want a positive test: your description suggests you want to know when there isn't. Your second attempt can be true only if $sht_num is "", and never otherwise. (It will also fail if no graphic elements are found on that path.) If you want a negative test, which will come back true if there is no graphic whose @board_no is $sht_num, the way to do that is test="not(ancestor::ipb/figure/subfig/graphic/@boardno=$sht_num)" Or, of course, you can use the xsl:otherwise clause. Good luck, Wendell >Here is the doc structure: > ><ipb> > <figure> > <subfig> > <graphic boardno='a'/> > </subfig> > </figure> > <table> > <row> > <entry><ipbilus><xref shtref='b'/></ipbilus> > </entry> > </row> > </table> ></ipb> > >$sht_num is set to xref/@shtref so b never finds a on graphic ====================================================================== Wendell Piez mailto:wapiez@m... Mulberry Technologies, Inc. http://www.mulberrytech.com 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: http://www.mulberrytech.com/xsl/xsl-list To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ or e-mail: <mailto:xsl-list-unsubscribe@l...> --~-- | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
