This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: weird behavior with last()
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] weird behavior with last()
- From: "Oleg Tkachenko" <ost at olegtkachenko dot com>
- Date: Tue, 24 Jul 2001 21:53:43 +0200
- Reply-To: xsl-list at lists dot mulberrytech dot com
Hello Nate !
What about empty whitespace nodes in your source xml ? msxml by default strip all empty whitespace nodes despite of xslt spec.
Try to strip they out and you will get the same behavior of msxml and saxon:
<xsl:strip-space elements="MainMenu SubMenu"/>
---
Oleg Tkachenko,
Multiconn International
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of Nathan Shaw
> Sent: Tuesday, July 24, 2001 7:50 PM
> To: xsl-list@lists.mulberrytech.com
> Subject: [xsl] weird behavior with last()
>
>
> Using Saxon with this XML snippet...
>
> <MainMenu>
> <MainMenuItem URL="/">Home</MainMenuItem>
> <MainMenuItem URL="/strat.html">Strategic
> Vision</MainMenuItem>
> <MainMenuItem URL="/themes.html">Research
> Themes</MainMenuItem>
> <MainMenuItem
> URL="/edu.html">Education</MainMenuItem>
> <MainMenuItem
> URL="http://commercial.hq.nasa.gov">Commercial</MainMenuItem>
> </MainMenu>
> <SubMenu>
> <SubMenuItem
> URL="/strat.html#v">Mission</SubMenuItem>
> <SubMenuItem
> URL="/strat.html#g">Goals</SubMenuItem>
> <SubMenuItem
> URL="/strat.html#p">Philosophy</SubMenuItem>
> </SubMenu>
>
> XSL looks like this:
>
> <xsl:template match="MainMenuItem">
> <b><a href="{@URL}"><xsl:apply-templates
> /></a></b><xsl:if
> test="position()!=last()"> | </xsl:if>
> </xsl:template>
>
> <xsl:template match="SubMenuItem">
> <b><a href="{@URL}"><xsl:apply-templates
> /></a></b><xsl:if
> test="position()!=last()"> | </xsl:if>
> </xsl:template>
>
> If I transform it like it is, I get an end "|" after
> the last <MainMenuItem> (not correct behavior) but NOT
> the last <SubMenuItem> (correct behavior). If I bring
> the end </MainMenu> tag up to the same line as the
> last </MainMenuItem> tag, I do not get the end "|"
> (correct behavior).
>
> Any ideas as to why this is happening? I realize that
> it is a rather trivial question, but it is an issue as
> I have to hand off the maintainence of the XML files
> to the client.
>
> TIA,
>
> Nate
>
> __________________________________________________
> Do You Yahoo!?
> Make international calls for as low as $.04/minute with Yahoo! Messenger
> http://phonecard.yahoo.com/
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list