[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: following-sibling:: within a for-each
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: 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|