Хммм ... интересно ... мне не удается использовать XslTransform
и XslCompiledTransform
в .NET - но похоже, что должно работать ... любопытно ...
обновление проблема, похоже, состоит в совпадении root ; попробовать
<xsl:template match="/catalog"> <!-- CHANGE HERE -->
<xsl:apply-templates>
<xsl:with-param name="test" select="'has this parameter been passed?'"/>
</xsl:apply-templates>
</xsl:template>
Тогда это работает для меня без каких-либо других изменений. Разница в том, что вы соответствовали корневому узлу. Когда вы применили свои «шаблоны», они каскадно сначала попадают в каталог (с параметром), , затем на CD (без параметра). Чтобы получить то, что вы хотите, вам нужно начать с каталога. Вы можете увидеть это, добавив <xsl:vaue-of select="name()"/>
к совпадению, а затем попробуйте использовать его как "/" и "/catalog".