[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] following-sibling:: within a for-each


Subject: [xsl] following-sibling:: within a for-each
From: "Khorasani, Houman" <houman_khorasani@xxxxxxxxxxxxxx>
Date: Mon, 10 Oct 2005 15:33:51 +0100

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