如何在C#中将XmlDocument
转换为XmlNode
?我需要将整个XmlDocument
对象作为输入参数发送到.NET Web服务。
答案 0 :(得分:7)
XmlDocument是一个XmlNode,因此您只需传递文档对象。
或者您可以发送其DocumentElement或从XPath查询返回的任何节点。
XmlDocument doc = null;
XmlNode node = doc;
XmlNode node = doc.DocumentElement;
XmlNode node = doc.SelectSingleNode("/foo/bar");
除非您需要从XmlDocument中消除XmlNode的歧义,否则不需要进行转换或转换,以获取两种参数类型都有重载的方法。如果是这种情况,请使用强制转换或as
运算符。
答案 1 :(得分:3)
如果需要将其明确引用为XmlNode,请使用“as”:
XmlDocument doc = ...
XmlNode node = doc as XmlNode;
答案 2 :(得分:0)
XmlDocument派生自XmlNode,但您也可以发送XmlDocument.DocumentElement,它是一个XmlElement,但最终是从XmlNode派生的。您可能需要签入XmlDocument.DocumentElement == null。