我有以下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。