xslt - 使用 xsl :fallback correctly

标签 xslt saxon

我正在尝试将 xsl:fallback 合并到我的样式表中。我正在使用 Saxon9.5.1.23-HE。

我在调用的命名模板中尝试了这段代码:

<xsl:newstuff>
    <xsl:text>blabla</xsl:text>
    <xsl:fallback>
       <xsl:message>
          Fallback worked!
       </xsl:message>
    </xsl:fallback>
</xsl:newstuff>

但是我得到的消息是元素 newstuff 未知,而不是“后备工作”。

我做错了什么还是与我使用的 Saxon 版本有关?

我还没有在撒克逊网站上找到任何东西。

感谢您的帮助!

最佳答案

<xsl:fallback>仅在 forwards-compatible mode 中处理当version="..."xsl:stylesheet 上元素大于相关处理器支持的最大版本(即“我只理解 XSLT 2.0,但此样式表是 4.0,所以我会给你怀疑的好处”)。如果处理器理解您为样式表声明的 XSLT 版本,那么拒绝它无法识别的元素而不是使用回退是正确的(“我理解 XSLT 2.0,此样式表是 2.0,因此我知道 肯定这个元素是错误的").

关于xslt - 使用 xsl :fallback correctly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20545311/

相关文章:

xml - 使用 XSLT 迭代时从 XML 文档中删除一些节点

xml - XSLT 函数返回不同的结果 [Saxon-EE vs Saxon-HE/PE]

Saxon-HE 9.5.1-6 中缺少 SaxonXQDataSource 类

java - 使用 javax.xml.transform.Transformer

xslt - 使用 document() XSLT 从外部 XML 访问节点

java - 使用 Saxon 库时 CPU 使用率高

xml - XSLT - 用于获取嵌套 XML 节点的递归模板用法

xslt - 释放管道抛出以下错误 : Unable to apply transformation for the given package - Changes are already present in the package

java - 如何从不同于 init() 的类调用缓存的 xsl 模板

c# - ASP.NET 中的 xslt