Subject: RE: [xsl] following-sibling:: within a for-each From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 10 Oct 2005 16:06:21 +0100 |
You can test if you're at the last item using <xsl:if test="position()!=last()">,</xsl:if> I would use a variable for the repeated expression /*/*[substring(name(),8) = 'MeterPulse']. You could do it using following-sibling but it's tortuous: test="following-sibling::*[substring(name(),8) = 'MeterPulse']" Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Khorasani, Houman [mailto:houman_khorasani@xxxxxxxxxxxxxx] > Sent: 10 October 2005 15:34 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] following-sibling:: within a for-each > > Hello everyone, > > This is the first time I am experimenting with following-sibling:: and > am already stuck in here. > > I have such a code here: > > <xsl:if test="/*/*[substring(name(),8) = 'MeterPulse']"> > <xsl:element name="MeterPulseFacility"> > <xsl:for-each select="/*/*[substring(name(),8) = > 'MeterPulse']"> <xsl:value-of select=" ...some > calculations... "/> > <xsl:text>,</xsl:text> > </xsl:for-each> > </xsl:element> > </xsl:if> > > The "...some calculations..." outputs a plain number. Following the > comma within the <xsl:text>,</xsl:text> > > The output would be something like > 3,2,1, > > I wish to eliminate the last comma since there is no need for > a further > separation. I thought I could check if there actually is another > incoming sibling in the for-each, if yes then set the comma > otherwise do > not set the comma. > > <xsl:if test="/*/*[substring(name(),8) = 'MeterPulse']"> > <xsl:element name="MeterPulseFacility"> > <xsl:for-each select="/*/*[substring(name(),8) = > 'MeterPulse']"> <xsl:value-of select=" ...some > calculations... "/> > <xsl:if > test="substring(following-sibling::node()/name(),8) = 'MeterPulse'"> > <xsl:text>,</xsl:text> > </xsl:if> > </xsl:for-each> > </xsl:element> > </xsl:if> > > However the way I wrote it seems to be wrong: > <xsl:if test="substring(following-sibling::node()/name(),8) = > 'MeterPulse'"> > > Any comments please? > > Many thanks, > Houman
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] following-sibling:: withi, David Carlisle | Thread | Re: [xsl] following-sibling:: withi, Geert Josten |
RE: [xsl] Getting inner exception i, Michael Kay | Date | Re: [xsl] following-sibling:: withi, Geert Josten |
Month |