Преобразовать объект XmlDocument в объект XmlNode - C #? - PullRequest
6 голосов
/ 05 марта 2010

Как мне преобразовать XmlDocument в XmlNode в C #? Мне нужно отправить весь объект XmlDocument в качестве входного параметра для веб-службы .NET.

Ответы [ 3 ]

7 голосов
/ 05 марта 2010

XmlDocument - это XmlNode, поэтому вы можете просто передать объект документа.

Или вы можете отправить его DocumentElement или любой узел, возвращенный из запроса XPath.

XmlDocument doc = null;
XmlNode node = doc;

XmlNode node = doc.DocumentElement;

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

Приведение или преобразование не требуется, если вам не нужно устранять неоднозначность XmlNode из XmlDocument для метода с перегрузками для обоих типов параметров. В этом случае используйте операторы cast или as.

3 голосов
/ 05 марта 2010

Если вам нужно явно указать его как XmlNode, используйте «as»:

XmlDocument doc = ...

XmlNode node = doc as XmlNode;
0 голосов
/ 05 марта 2010

XmlDocument является производным от XmlNode, но вы также можете отправить XmlDocument.DocumentElement, который является XmlElement, но в конечном счете является производным от XmlNode Возможно, вам придется проверить в XmlDocument.DocumentElement == null.

...