Я думаю "новый", добавляет ясность к коду. И ясность стоит всего. Хороший для знания существуют ловушки, но предотвращение их путем предотвращения ясности не походит на путь ко мне.
Конечно, есть общий способ:
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:template match="row">
<set>
<xsl:apply-templates select="
col[position() mod 2 = 1 and following-sibling::col]
" />
</set>
</xsl:template>
<xsl:template match="col">
<point x="{text()}" y="{following-sibling::col[1]/text()}" />
</xsl:template>
</xsl:stylesheet>
Вывод для меня:
<set>
<point x="0" y="0" />
<point x="1" y="1" />
</set>