当在外部XSLT对象中实现的函数不存在时(在XSLT 1.0中)是否可以提供回退行为?
现在,我有类似于
的东西<xsl:template match="an-element">
<xsl:value-of select="external-ns:ExternalFunction(.)" />
</xsl:template>
然而,如果external-ns
不可用,则可以生成有意义的内容,它不会那么聪明。所以,我想要像
<!-- (pseudo) -->
<xsl:template match="an-element">
<xsl:try>
<xsl:value-of select="external-ns:ExternalFunction(.)" />
<xsl:catch>
<!-- do something else with the node -->
</xsl:catch>
</xsl:try>
</xsl:template>
我知道xsl:fallback
和element-available()
但这些似乎只适用于元素,而不是函数。有没有办法实现这个目标?
答案 0 :(得分:1)
来自http://www.w3.org/TR/xslt#function-function-available
功能:布尔 可用功能( string )
参数必须求值为字符串 这是一个QName。 QName已扩展 使用。扩展名称 范围内的名称空间声明 表达方式。功能可用 函数返回true,当且仅当 扩展名是a的名称 函数库中的函数。如果 扩展名称具有非null 命名空间URI,然后它引用一个 扩展功能;否则,它 指的是XPath定义的函数 或XSLT。