Элемент <xsl:apply-templates> применяет некий шаблон к текущему элементу или к дочернему узлу текущего элемента.
Если в элемент <xsl:apply-templates> добавить атрибут select, то он будет относиться только к дочернему элементу, который соответствует значению этого атрибута. Таким образом, атрибут select может использоваться для определения порядка, в котором будут обрабатываться дочерние узлы.
Пример
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="cd">
<p>
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="artist"/>
</p>
</xsl:template>
<xsl:template match="title">
Title: <span style="color:#ff0000">
<xsl:value-of select="."/></span>
<br />
</xsl:template>
<xsl:template match="artist">
Artist: <span style="color:#00ff00">
<xsl:value-of select="."/></span>
<br />
</xsl:template>
</xsl:stylesheet>