У меня проблема с тегами xsl: templates и xsl: call-template.Возможно, это нехватка понимания, но вот что я пытаюсь сделать ...
Если у меня есть шаблон, который совпадает с "/ *", и мне нужно вызвать другие шаблоны из прилагаемого шаблонакоторые требуют других контекстов документа, каков наиболее эффективный способ сделать это?
<xsl:template match="/*">
<xsl:call-template name="header">
<xsl:with-param name="headerContext" select="./[1]"/>
</xsl:call-template>
<xsl:call-template name="body">
<xsl:with-param name="bodyContext" select="*/*/[1]"/>
</xsl:call-template>
<xsl:template>
Я использую xsl: with-param при вызове шаблонов заголовка и тела, чтобы я мог переопределить match = "/ * "из вмещающего шаблона, но когда я делаю это, вывод получается испорченным.Если я закомментирую вызов шаблона «заголовка», шаблон тела будет работать правильно, и наоборот, но вызов обоих из основного шаблона, как вы видите в приведенном выше примере, заставляет их вести себя странно.Шаблоны заголовка и тела требуют выделения для различных частей документа, поэтому я решил использовать w0th-param, но я не думаю, что он даже работает.
Должен ли я вместо этого использовать apply-templates?