2011-01-13 22 views
0

當在外部XSLT對象中實現的函數不存在時(在XSLT 1.0中),是否可以提供回退行爲?XSLT擴展函數不存在時的回退行爲

現在,我有類似

<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:fallbackelement-available()但這些似乎只爲元素,而不是函數。有什麼辦法可以做到這一點?

回答

1

http://www.w3.org/TR/xslt#function-function-available

功能布爾功能有效

的參數必須計算爲字符串 是一個QName。將QName擴展爲擴展名 ,使用 命名空間聲明,範圍爲 表達式。函數 函數返回true當且僅當 擴展名稱是函數庫中的 函數的名稱。如果 擴展名具有非空 名稱空間URI,則它指的是 擴展函數;否則,它指的是由XPath 或XSLT定義的函數。

+0

我不知道我是如何錯過了這一點。謝謝! – Jacob

+0

@Jacob:別提了。不用謝。 – 2011-01-13 23:24:16