Pokud platí, že na vstupu jsou řádky správně seřazené, pak bude fungovat např. toto:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<Workbook>
<xsl:apply-templates select="ResultsSet/ResultSet[1]/Row"/>
</Workbook>
</xsl:template>
<xsl:template match="/ResultsSet/ResultSet[1]/Row">
<xsl:variable name="id" select="Parent"/>
<Pack>
<Type>Pallet</Type>
<ID><xsl:value-of select="$id" /></ID>
<Sequence><xsl:value-of select="count(preceding-sibling::Row) + count(/ResultsSet/ResultSet[2]/Row[Parent = $id][1]/preceding-sibling::Row) + 1" /></Sequence>
</Pack>
<xsl:apply-templates select="/ResultsSet/ResultSet[2]/Row[Parent=$id]"/>
</xsl:template>
<xsl:template match="/ResultsSet/ResultSet[2]/Row">
<xsl:variable name="current" select="."/>
<Pack>
<Type>Box</Type>
<ID><xsl:value-of select="Child" /></ID>
<Sequence><xsl:value-of select="count(preceding-sibling::Row) + count(/ResultsSet/ResultSet[1]/Row[Parent = $current/Parent]/preceding-sibling::Row) + 2" /></Sequence>
<Parent><xsl:value-of select="Parent" /></Parent>
</Pack>
</xsl:template>
</xsl:stylesheet>
BoneFlute si může všimnout, že to není imperativní program, takže tam není žádná pojmenovaná funkce (šablona) ani žádný cyklus.