用XSL动态处理.inc文件



我有以下XML文档,我希望将其作为网站所有文件的一部分:

报头XML文档(下面的输出引用为Header .aspx):

<header>
<div class="welcome">Hello there!</div>
</header>

这是在所有页面上执行的全局XSL文件的一部分,它调用了上面的:

全局XSL文件

<xsl:template name="my-header">
<xsl:call-template name="my-output">
<xsl:with-param name="path">/inc/header.aspx</xsl:with-param>
</xsl:call-template>
</xsl:template>

我想做的是能够自定义标题的输出。基于输出位置的Aspx。例如,如果它输出目录/test1中列出的文件,它可能输出如下:

<header>
<div class="welcome">Thank you for subscribing!</div>
</header>

但是在目录/test2中的文件中,它可以是:

<h2 class="welcome">Sad to see you go!</div>

当未指定时,将输出默认内容。

我有其他选项吗?我意识到我可以创建单独的头文件include,并基于xsl:choose语句调用它们,但我更希望有一个单独的include文件,因为大多数内容将在页面之间保持相同。

您可以提供头文件的URI作为转换的参数,并使用document()函数将此URI作为参数加载文件。

全局样式表参数使用顶级xsl:param元素声明(顶级意味着它是xsl:stylesheet的子元素),您提供值的方式取决于您用于执行样式表的处理器API。

最新更新