Mega Code Archive

 
Categories / XML / XSLT StyleSheet
 

If test=position()!=last()

File: Data.xml <?xml version="1.0" encoding="utf-8"?> <emailList>   <head:header xmlns:head="http://www.domain.com/namespace/header">     <title>Email List</title>     <maintainer>Joe</maintainer>   </head:header>   <person type="personal" id="p001">     <name>person1</name>     <email>p@hotmail.com</email>   </person>   <person type="work" id="p002">     <name>person2</name>     <email>p@hotmail.com</email>   </person>   <person type="personal" id="p003">     <name>person3</name>     <email>p3@hotmail.com</email>   </person> </emailList> File: Transform.xslt <?xml version="1.0" encoding="UTf-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">    <xsl:output method="html" indent="yes" />    <xsl:template match="/">       <p>Your email list consists of the following individuals:       <xsl:for-each select="emailList/person">          <xsl:if test="position()!=last()">          <xsl:apply-templates select="name" />, </xsl:if>          <xsl:if test="position()=last()">          <xsl:apply-templates select="name" />.</xsl:if>                 </xsl:for-each>       </p>    </xsl:template>    <xsl:template match="name">       <xsl:value-of select="." />    </xsl:template> </xsl:stylesheet> Output: <p>Your email list consists of the following individuals:    person1, person2, person3. </p>