Вы не можете делать именно так, как вы описываете;XSLT - это декларативный, а не процедурный язык, он на самом деле не разработан с учетом «потока программ».Однако, перефразируя ваш пример, вы можете сделать следующее:
<xsl:template match="asd[not($true)]">
<!--my main code here-->
</xsl:template>
Недостатком этого является то, что он не позволяет вам вводить шаблон в первую очередь, поэтому вы не можете иметь ничего до 'if'.
NB. Строго говоря, спецификация для XSLT1.0 не должна разрешать переменные в условиях совпадения, как это, но многие движки XSLT 1.0 будут делать это в любом случае, и это только проблема, если выНа самом деле условие имеет такую переменную.Однако XSLT 2.0 официально разрешает это.