[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Dan,
At 04:04 PM 10/1/2009, you wrote:
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.
Re: [xsl] Correct way to test for no match
Subject: Re: [xsl] Correct way to test for no match From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Thu, 01 Oct 2009 17:43:43 -0400 |
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@xxxxxxxxxxxxxxxx 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 ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Correct way to test for no ma, Dan Vint | Thread | Re: [xsl] Correct way to test for n, Dan Vint |
[xsl] Correct way to test for no ma, Dan Vint | Date | RE: [xsl] Create a web interface to, Michael Kay |
Month |
Keywords