gpt4 book ai didi

xslt - 加载 XSL 代码的外部 block

转载 作者:行者123 更新时间:2023-12-01 14:36:50 25 4
gpt4 key购买 nike

是否可以加载 XSL 代码的外部 block ,类似于加载代码块的方式,例如 aspx include?例如:

    <xsl:if test="$ShowNextButton='No'">
<!-- A Block of external code would be loaded here -->
</xsl:if>

如果 XSLT 1.0 有所不同,我将使用它。

最佳答案

如果您的“外部 XSL 代码” block 可以放入命名模板中,则可以轻松做到这一点。

这是一个使用主 XSLT 样式表 (base.xsl) 并包含外部 XSLT 样式表 (include.xsl) 的通用示例。

输入.xml

<test>
<foo trigger-template="yes">
<bar>Original "bar".</bar>
</foo>
<foo trigger-template="no">
<bar>Original "bar".</bar>
</foo>
</test>

base.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="include.xsl"/>
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>

<xsl:template match="foo">
<foo>
<xsl:if test="@trigger-template='yes'">
<xsl:call-template name="external-template">
<xsl:with-param name="statement" select="'Successfully called external XSL code!'"/>
</xsl:call-template>
</xsl:if>
<xsl:apply-templates/>
</foo>
</xsl:template>

</xsl:stylesheet>

include.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template name="external-template">
<xsl:param name="statement"/>
<bar><xsl:value-of select="$statement"/></bar>
</xsl:template>

</xsl:stylesheet>

输出.xml

<test>
<foo>
<bar>Successfully called external XSL code!</bar>
<bar>Original "bar".</bar>
</foo>
<foo>
<bar>Original "bar".</bar>
</foo>
</test>

关于xslt - 加载 XSL 代码的外部 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com