How do I convert an XmlDocument
to a XmlNode
in C#? I need to send the entire XmlDocument
object to as an input parameter to a .NET web service.
views:
702answers:
3
+1
A:
A XmlDocument is a XmlNode, so you can just pass the document object.
Or you could send its DocumentElement, or any Node returned from an XPath query.
XmlDocument doc = null;
XmlNode node = doc;
XmlNode node = doc.DocumentElement;
XmlNode node = doc.SelectSingleNode("/foo/bar");
No casting or converting is needed unless you need to disambiguate XmlNode from XmlDocument for a method with overloads for both parameter types. If this is the case, use either of the cast or as
operators.
Lachlan Roche
2010-03-04 21:33:09
+1
A:
If you need to refer to it explicitly as an XmlNode use "as":
XmlDocument doc = ...
XmlNode node = doc as XmlNode;
xcud
2010-03-04 21:34:51
A:
An XmlDocument is derived from XmlNode, but you could also send the XmlDocument.DocumentElement which is an XmlElement but ultimately derived from XmlNode. You might need to check in XmlDocument.DocumentElement == null.
Ryan
2010-03-04 21:36:50