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

8

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


在 Web 服务的参数中,.NET Framework 中定义的复杂类型似乎不是一个好选择。如果这个服务是你自己的,你可以考虑将类型更改为字符串。这样也可以让你相对容易地从其他语言/平台调用它。 - TrueWill
@TrueWill - 这个服务不是我的,而是一个第三方供应商的服务。 - Michael Kniskern
3个回答

9

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

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

XmlDocument doc = null;
XmlNode node = doc;

XmlNode node = doc.DocumentElement;

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

除非你需要在一个同时支持XmlNode和XmlDocument参数类型的方法中进行区分,否则不需要进行转换或转换。如果是这种情况,请使用任一转换或as运算符。


3
如果您需要明确引用它作为XmlNode,请使用"as":
XmlDocument doc = ...

XmlNode node = doc as XmlNode;

0

XmlDocument是从XmlNode派生而来的,但您也可以发送XmlDocument.DocumentElement,它是一个XmlElement,但最终也是从XmlNode派生的。您可能需要检查XmlDocument.DocumentElement == null。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接