7

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

4

3 回答 3

7

XmlDocument 是一个 XmlNode,因此您可以只传递文档对象。

或者,您可以发送它的 DocumentElement,或从 XPath 查询返回的任何节点。

XmlDocument doc = null;
XmlNode node = doc;

XmlNode node = doc.DocumentElement;

XmlNode node = doc.SelectSingleNode("/foo/bar");

除非您需要将 XmlNode 与 XmlDocument 区分为具有两种参数类型的重载的方法,否则不需要强制转换或转换。如果是这种情况,请使用强制转换或as运算符。

于 2010-03-04T21:33:09.567 回答
3

如果您需要将其明确称为 XmlNode,请使用“as”:

XmlDocument doc = ...

XmlNode node = doc as XmlNode;
于 2010-03-04T21:34:51.747 回答
0

XmlDocument 派生自 XmlNode,但您也可以发送 XmlDocument.DocumentElement,它是一个 XmlElement,但最终派生自 XmlNode。您可能需要签入 XmlDocument.DocumentElement == null。

于 2010-03-04T21:36:50.513 回答