Subject: Re: Re: [xsl] Introducing a comma. From: Paul DuBois <paul@xxxxxxxxxxxx> Date: Tue, 18 Nov 2003 12:49:05 -0600 |
On Tue, Nov 18, 2003 at 01:08:39PM -0500, cknell@xxxxxxxxxx wrote: > Sorry if another version of this appears without the stylesheet. I expected this stylesheet to work just the way the example shown in the spec does, but the comma appears after all instances of <in>. Can anyone see what I'm missing? > > <?xml version="1.0" encoding="UTF-8" ?> > <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output method="xml" indent="yes" encoding="UTF-8" /> > > <xsl:template match="/signature"> > <signature> > <xsl:apply-templates /> > </signature> > </xsl:template> > > <xsl:template match="*"> > <xsl:choose> > <xsl:when test="name() = 'in'"> > <xsl:copy-of select="." /> > <xsl:if test="not(position() = last())"> > <xsl:text>,</xsl:text> > </xsl:if> > </xsl:when> > <xsl:otherwise> > <xsl:copy-of select="." /> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > > </xsl:stylesheet> > -- > Charles Knell > cknell@xxxxxxxxxx - email Your input document is: <signature>signature <identifier>DNSQuery</identifier> <in>in<long>long</long><identifier>a</identifier></in> <in>in<string>string</string><identifier>b</identifier></in> <in>in<float>float</float><identifier>c</identifier></in> </signature> I suppose you are expecting position() to be 1, 2, or 3, and last() to be 3. But they're not. You have text nodes (both empty and non-empty) within your <signature> element. For your document, position() is 4, 6, and 8, and last() is 9. XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: Re: [xsl] Introducing a comma., cknell | Thread | RE: Re: [xsl] Introducing a comma., David Carlisle |
Re: [xsl] Re: Sorting and Merge, Dongling Ding | Date | Re: [xsl] keep-together and FOP, J.Pietschmann |
Month |