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 を使用する必要がありますか?