我有一个XmlNodeList,我需要它以一种格式,然后我可以通过从C#扩展方法调用它在XSLT样式表中重用它.
有人可以帮忙吗?我已经读过它可能与使用XPathNavigator有关但我仍然有点卡住了.
几年前我不得不自己解决这个问题.我管理它的唯一方法是创建一个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来创建元素(我前一段时间编写了这段代码,从那时起我学到了更多 - 但我知道上面的代码可行,但我没有尝试了任何替代品).