将XmlDocument对象转换为XmlNode对象 - C#?

时间:2010-03-04 21:25:40

标签: c# xmldocument xmlnode

如何在C#中将XmlDocument转换为XmlNode?我需要将整个XmlDocument对象作为输入参数发送到.NET Web服务。

3 个答案:

答案 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。