小编Col*_*zie的帖子

XSLT3 可以在与 expand-text=yes 相同的模板中使用禁用输出转义吗?

我注意到在 Saxon 的 XSLT3 中尝试使用禁用输出转义时,如果在样式表或什至在给定的匹配模板上将扩展文本设置为 yes,它将不起作用

以下代码(在其自身上运行时)显示了该问题(在 Saxon 9.8.0.12 中)。我知道这是一个不寻常的组合,并且通常不惜一切代价避免禁用输出转义,而只是试图确定正确的行为。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">

    <xsl:template match="/">
        <out>
            <xsl:apply-templates/>
        </out>
    </xsl:template>
    <xsl:template match="xsl:stylesheet" expand-text="true">
        <expandtext>
            <count>{count(*)}</count>
            <xsl:text disable-output-escaping="true">&lt;test/&gt;</xsl:text>
        </expandtext>
        <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="xsl:template" expand-text="false">
        <notexpandtext>
            <count>{count(*)}</count>
            <xsl:text disable-output-escaping="true">&lt;test/&gt;</xsl:text>
        </notexpandtext>
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

产生

<?xml version="1.0" encoding="UTF-8"?>
<out>
    <expandtext><count>3</count>&lt;test/&gt;</expandtext>
    <notexpandtext><count>{count(*)}</count><test/></notexpandtext>
    <notexpandtext><count>{count(*)}</count><test/></notexpandtext>
    <notexpandtext><count>{count(*)}</count><test/></notexpandtext>
</out>
Run Code Online (Sandbox Code Playgroud)

xslt saxon xslt-3.0

6
推荐指数
1
解决办法
176
查看次数

标签 统计

saxon ×1

xslt ×1

xslt-3.0 ×1