【发布时间】:2020-04-10 07:28:23
【问题描述】:
我注意到在 Saxon 的 XSLT3 中尝试使用禁用输出转义时,如果在样式表甚至给定的匹配模板上将 expand-text 设置为 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"><test/></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"><test/></xsl:text>
</notexpandtext>
</xsl:template>
</xsl:stylesheet>
生产
<?xml version="1.0" encoding="UTF-8"?>
<out>
<expandtext><count>3</count><test/></expandtext>
<notexpandtext><count>{count(*)}</count><test/></notexpandtext>
<notexpandtext><count>{count(*)}</count><test/></notexpandtext>
<notexpandtext><count>{count(*)}</count><test/></notexpandtext>
</out>
【问题讨论】:
-
我可以确认行为。解决方法:
<count xsl:expand-text="true"> -
谢谢我不是在寻找解决方法,这只是一个测试用例。