2010-03-04 2 views
6

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

+0

Сложный тип, определенный в .NET Framework, кажется плохим выбором для параметра веб-службы. Если служба принадлежит вам, вы можете посмотреть на изменение типа на строку. Это также позволит вам относиться к нему с других языков/платформ с относительной легкостью. – TrueWill

+0

@TrueWill - сервис не мой, это третий серийный серийник. –

ответ

7

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 «как»:

XmlDocument doc = ... 

XmlNode node = doc as XmlNode; 
0

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

Смежные вопросы