Поддержка версий
Вообще работа с xslt во многом зависит от того процессора с которым вы работаете. Я например, для простоты использую тот, что встроен в браузер, но браузеры поддерживают как правило xslt1.0, и как в случае с html поддержка их тоже не одинакова. Можно трансформировать чем то более серьезным. В любом случае, какой бы процессор не использовался, можно заранее позаботиться о совместимости версий или просто проверить какой процессор у вас и что он поддерживает, тоже бывает полезным при отладке.
Для начала получим версию процессора
<xsl:value-of select="system-property('xsl:version')" />
затем проверим пооддерживает ли он элемент
<xsl:value-of select="element-available('xsl:for-each')" />
или нужную функцию
<xsl:value-of select="function-available('round-half-to-even')" />
в первом случае возвращается номер вверсии в остальных двух frue или false. Теперь попробуем этим воспользоватся
<xsl:if test="not(element-available('xsl:for-each-group'))">
for-each-group is not supported
</xsl:if>