2015-06-04 93 views
0

我正在嘗試使用xslt模板匹配與模式相結合功能根據條件運行特定模板。在這種情況下,admin是否設置爲trueXSLT模式未被觸發

<xsl:template match="*[//Properties[@Admin='true']]" mode="admin"> 
    <!-- i get here --> 
    <apply-templates select="self::node()[not(../PersonalisedErrorInstance)]" mode="personalisation"/> 
</xsl:template> 

<xsl:template match="*[//Properties[@Admin='false']]" mode="admin"> 
    <apply-templates select="self::node()" mode="personalisation"/> 
</xsl:template> 

<xsl:template match="*" mode="personalisation"> 
    <!-- never get here --> 

出於某種原因,我似乎從來沒有打個性化模板匹配,無論admintruefalse。有明顯的證據表明我做錯了嗎?

我試過將self::node()更改爲*,所以我不確定是什麼導致了這個問題。

+3

你忘了'領先的xsl:'在*應用模板* ...'的'應該工作正常,我猜。 – potame

+0

@potame嘆了口氣......大聲笑我一直盯着它好幾個小時。謝謝! *拍攝自我* – gardni

回答

0

*表示任何子實體,不能代替self::node()

如果您要提供源XML,我們可能會發現您的問題。可能是您當前的節點有一個兄弟實例PersonalisedErrorInstance

問候 魔女