<xsl:if test="one">
<h2>one</h2>
<xsl:apply-templates select="one"/>
</xsl:if>
<!-- etc -->
Alternatywnie, można utworzyć nazwie szablonu
<xsl:template name="WriteWithHeader">
<xsl:param name="header"/>
<xsl:param name="data"/>
<xsl:if test="$data">
<h2><xsl:value-of select="$header"/></h2>
<xsl:apply-templates select="$data"/>
</xsl:if>
</xsl:template>
a następnie wywołać jak:
<xsl:call-template name="WriteWithHeader">
<xsl:with-param name="header" select="'one'"/>
<xsl:with-param name="data" select="one"/>
</xsl:call-template>
Ale szczerze mówiąc, że wygląda na to więcej pracy dla mnie ... Przydaje się tylko wtedy, gdy rysowanie nagłówka jest złożone ... dla prostego kodu: <h2>...</h2>
Byłbym skłonny zostawić to w linii.
Jeżeli tytuł nagłówka jest zawsze nazwa węzła, można simplifiy szablon usuwając „$ header” Arg, i używać zamiast:
<xsl:value-of select="name($header[1])"/>
być dokładniej :) czy twój plik xml, jak chcesz korzystać z tego szablonu? – kender