[Home] [By Thread] [By Date] [Recent Entries]
Hi Chris,
Perhaps this is what you are after? It outputs what you specified. (ah, I see that David beat me to it with a much shorter approach ;) Cheers, Abel <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="text" /> <xsl:template match="/shipment" >
<xsl:apply-templates select="header" />
<xsl:apply-templates select="detail" />
<xsl:apply-templates select="detail/containers/box" />
</xsl:template> <xsl:template match="header">
<xsl:text>REC1*</xsl:text>
<xsl:value-of select="shipmentId"/>
<xsl:text>
</xsl:text>
</xsl:template><xsl:template match="detail" /> <xsl:template match="detail[position() mod 2 != 0]" > <xsl:text>REC2</xsl:text> <xsl:apply-templates select="po | following-sibling::detail[1]/po" /> </xsl:template> <xsl:template match="po" >
<xsl:text>*</xsl:text>
<xsl:value-of select="."/>
<xsl:if test="position() mod 2 = 0 or position() = last()">
<xsl:text>
</xsl:text>
</xsl:if>
</xsl:template><xsl:template match="box" > <xsl:if test="position() mod 4 = 1">REC3</xsl:if> <xsl:text>*</xsl:text> <xsl:value-of select="."/> <xsl:if test="position() mod 4 = 0"> <xsl:text>
</xsl:text> </xsl:if> </xsl:template> </xsl:stylesheet> Chris wrote:
|

Cart



