Я должен был решить эту проблему сам пару лет назад. Единственный способ, которым мне удалось это сделать, - создать фрагмент 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. Вы можете просто вызвать CreateNavigator () для корневого экземпляра XmlNode и использовать существующий XmlDocument для создания элемента (я написал этот код некоторое время назад и с тех пор узнал больше - но я знаю, что приведенный выше код работает, я не пробовал любые альтернативы).