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.