当前位置:  开发笔记 > 编程语言 > 正文

如何将XmlNodeList转换为NodeSet以在XSLT中使用?

如何解决《如何将XmlNodeList转换为NodeSet以在XSLT中使用?》经验,为你挑选了1个好方法。

我有一个XmlNodeList,我需要它以一种格式,然后我可以通过从C#扩展方法调用它在XSLT样式表中重用它.

有人可以帮忙吗?我已经读过它可能与使用XPathNavigator有关但我仍然有点卡住了.



1> Jeff Yates..:

几年前我不得不自己解决这个问题.我管理它的唯一方法是创建一个XML片段,其中包含节点列表中的节点,然后传入片段的子节点.

XsltArgumentList arguments = new XsltArgumentList();
XmlNodeList nodelist;
XmlDocument nodesFrament = new XmlDocument();
XmlNode root = nodesFragment.CreateElement("root");
foreach (XmlNode node in nodeList)
{
    root.AppendChild(node);
}
nodesFragment.AppendChild(root);

arguments.AddParam("argumentname", string.Empty, nodesFragment.CreateNavigator().SelectChildren(XPathNodeType.All));

那么你需要确保你的XSLT中有相应的参数.

请注意,您可能不需要额外的XmlDocument.您可以在根XmlNode实例上调用CreateNavigator()并使用现有的XmlDocument来创建元素(我前一段时间编写了这段代码,从那时起我学到了更多 - 但我知道上面的代码可行,但我没有尝试了任何替代品).

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有