Viele Programmiersprachen bringen eine max() Funktion mit. XSLT leider nicht. Kein Grund darauf zu verzichten.
Was wir dazu tun, ist ganz einfach. Wir iterieren mit einer for-each Schleife über das Root-Element. Vor dem iterieren können wir die Sequenz absteigend sortieren. Die Werte stehen im <row> Element. Das erste Element der Liste ist das Maximum.
maximum1.xslt
<xsl:for-each select="//root">
<xsl:sort select="row" order="descending" />
<xsl:if test="position()=1">
<xsl:value-of select="row" />
</xsl:if>
</xsl:for-each>
Das folgende Beispiel sucht die maximale Anzahl an Child-Elementen in einem Root-Element und speichert diesen Wert in der Variable $maximum.
maximum2.xslt
<xsl:variable name="maximum">
<xsl:for-each select="//root">
<xsl:sort select="count(row)" order="descending" />
<xsl:if test="position()=1">
<xsl:value-of select="count(row)" />
</xsl:if>
</xsl:for-each>
</xsl:variable>