Используйте инструкцию xsl: if внутри вашего шаблона для ветвления.
Пример:
<xsl:template match="node">
<xsl:value-of select="child1" />
<xsl:if test="price > 10">
<xsl:value-of select="child2" />
<xsl:value-of select="child3" />
</xsl:if>
</xsl:template>
Я надеялся на простой пример в вопросе.На первый взгляд, я не приведу простой пример, который пояснит ваш вопрос и покажет, как инструкция xsl: if является идеальным ответом.
Скажем таку вас есть такая музыкальная коллекция ...
<?xml version="1.0"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
</catalog>
И вы хотите вывести html-таблицу с названием и ценой списка вашего CD.Обычно вам нужны и заголовок, и цена, но при некоторых условиях (скажем, цена меньше 10 долларов) вы хотите подавить вывод цены и просто разместить на своем месте статический текст, например, «дешевле, чем 10,00».
Итак, ваш ожидаемый результат должен быть:
<?xml version="1.0" encoding="utf-8"?>
<table>
<tr>
<td>Empire Burlesque</td>
<td>cheaper than 10.00</td>
</tr>
<tr>
<td>Hide your heart</td>
<td>9.90</td>
</tr>
</table>
Таблица стилей для создания этого преобразования может быть:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<table>
<xsl:apply-templates select="//cd"/>
</table>
</xsl:template>
<xsl:template match="cd">
<tr>
<td><xsl:value-of select="title"/></td>
<xsl:if test="price < 10">
<td><xsl:value-of select="price"/></td>
</xsl:if>
<xsl:if test="not(price < 10)">
<td>cheaper than 10.00</td>
</xsl:if>
</tr>
</xsl:template>
</xsl:stylesheet>
И там у вас есть идеальный ответ - как применитьвесь шаблон или только его части в зависимости от условия.В этом случае условие состоит в том, что цена составляет менее $ 10.