2010-04-20 154 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