2010-04-20 84 views
2

我使用XsltArgumentList.AddExtensionObject成功。 問題是,當我從xslt調用函數時,他們只獲取我傳遞的參數。 如何獲取上下文(正在處理哪個節點)。Xslt擴展對象 - 獲取上下文

我使用XslTransform.Transform (myXPathDoc, xslArgs, myWriter);開始轉型..

我聽說SetContextRegisterCustomFunction,但他們似乎只對XPathExpression對象工作...

感謝

+0

請發佈XSLT和擴展函數,以便我們可以看到你在做什麼。 – Oded 2010-04-20 12:15:40

回答

0

沒有記錄擴展功能的方式隱式訪問上下文節點

將它作爲參數傳遞給

例如

<xsl:value-of select="extFn:MyExtensionFunction(.,'A',./code,./date)"/>

您將需要修改擴展功能的代碼:增加新的參數,它必須是爲了第一,它是通過這個新的參數擴展函數獲取當前節點。

+0

當。我如何將它作爲參數傳遞? 我有 2010-04-20 13:14:56

+0

@ Joaozinho-das-Couves:查看更新後的解決方案。 :) – 2010-04-20 13:33:42

+0

差不多,我真正想要的不是數據節點,而是實際的xslt上下文節點。 最後,我想要的是,當我的函數引發異常時,我想說什麼xslt節點導致異常(我的函數在xslt中使用了10次,並且取決於它可以拋出異常的參數) – 2010-04-20 13:54:12