2010-03-04 15 views
6

Wie konvertiere ich eine XmlDocument in eine in C#? Ich muss das gesamte Objekt XmlDocument als Eingabeparameter an einen .NET-Webdienst senden.XmlDocument-Objekt in ein XmlNode-Objekt konvertieren - C#?

+0

Ein komplexer Typ, der in .NET Framework definiert wird, scheint eine schlechte Wahl für einen Parameter zu einem Webdienst zu sein. Wenn der Service Ihnen gehört, können Sie den Typ in eine Zeichenfolge ändern. Damit können Sie es relativ einfach von anderen Sprachen/Plattformen aus aufrufen. – TrueWill

+0

@TrueWill - Der Service ist nicht meins, es ist ein dritter Paty-Anbieter-Service. –

Antwort

7

Ein XmlDocument ist ein XmlNode, so dass Sie das Dokumentobjekt einfach übergeben können.

Oder Sie können ihr DocumentElement oder einen Knoten, der von einer XPath-Abfrage zurückgegeben wird, senden.

XmlDocument doc = null; 
XmlNode node = doc; 

XmlNode node = doc.DocumentElement; 

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

Kein Gießen oder Umwandlung benötigt wird, es sei denn, Sie XmlNode aus XmlDocument für ein Verfahren mit Überlastungen für beide Parametertypen eindeutig zu machen brauchen. Wenn dies der Fall ist, verwenden Sie einen der Operatoren cast oder as.

3

Wenn Sie müssen es explizit als XmlNode Verwendung beziehen „als“:

XmlDocument doc = ... 

XmlNode node = doc as XmlNode; 
0

Ein XmlDocument von XmlNode abgeleitet, aber man kann auch die XmlDocument.DocumentElement senden, die eine XmlElement ist aber letztlich abgeleiteten von XmlNode. Möglicherweise müssen Sie XmlDocument.DocumentElement == null einchecken.

Verwandte Themen