2010-03-04 26 views
6

XmlDocument'u C# XmlNode'a nasıl dönüştürebilirim? Tüm XmlDocument nesnesini bir .NET web hizmetine giriş parametresi olarak göndermem gerekiyor.XmlDocument nesnesini bir XmlNode nesnesine dönüştürme - C#?

+0

.NET Framework'te tanımlanan karmaşık bir tür, bir Web Hizmeti için bir parametre için zayıf bir seçim gibi görünüyor. Hizmet sizin ise, yazıyı dizgeye çevirmeyi düşünebilirsiniz. Bu, onu diğer dillerden/platformlardan göreceli kolaylık ile çağırmanıza da izin verir. – TrueWill

+0

@TrueWill - Hizmet benim değil, üçüncü bir paty satıcısıdır. –

cevap

7

Bir XmlDocument bir XmlNode, bu nedenle belge nesnesini yalnızca geçirebilirsiniz. Veya DocumentElement veya bir XPath sorgusundan döndürülen herhangi bir düğümü gönderebilirsiniz. Her iki parametre tipleri için aşırı bir yöntem için XmlDocument gelen XmlNode belirginleştirecek gerekmedikçe

XmlDocument doc = null; 
XmlNode node = doc; 

XmlNode node = doc.DocumentElement; 

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

Resim döküm veya dönüşüm gereklidir. Bu durumda, dökümden veya as operatörlerinden birini kullanın.

3

siz "olarak" bir XmlNode kullanımı olarak açıkça başvurmak gerekiyorsa:

XmlDocument doc = ... 

XmlNode node = doc as XmlNode; 
0

Bir XmlDocumentSystem.Xml.XmlNode XmlNode'dan türetilmiştir, ama aynı zamanda bir XmlElement ama sonuçta türetilen XmlDocument.DocumentElement gönderebilir XmlNode'dan. XmlDocument.DocumentElement == null'da kontrol etmeniz gerekebilir.

İlgili konular