XSLT:处理模板中的Xml节点集,同时仍然可以访问文档根目录

我有一个xslt样式表,需要调用C#XSLT扩展函数来处理元素集合。 代码看起来有点像这样:

XSLT:

  ...  

扩展方法:

 public XPathNavigator GetSomeCollection(string Attribute) { XmlDocument doc = new XmlDocument() //etc... return doc.CreateNavigator(); } 

扩展方法返回一个XPathNavigator因为这是我可以看到扩展方法返回任何类型集合的唯一方法。

我遇到的问题是我的模板(mode =“MyTemplate”)需要能够访问根/输入文档中的xml节点到xslt样式表(以及由返回的节点集中的节点)扩展方法),但模板似乎只能访问GetSomeCollection返回的xml片段 – xpath表达式开始/只是解析为该片段的开头。

我可以看出为什么会这样(模板正在处理xml片段,但该片段属于不同的文档),但是我看不到如何绕过它。 似乎没有任何方法可以使扩展方法生成属于原始文档的xml片段。

我能做什么?

使用变量?

    ...  

或参数:

       ...