2009-03-10 16 views
0

için değer olarak kullanılacak MSXML DOMDocument'i dönüştürme Bazı .NET/ADO.NET kodlarından çağrılan bir xml parametresi (SqlDbType.Xml) kabul eden bir saklı yordamım var. Bunu bir test XML'i bir dosyadan okumak için bir System.XML.XMLReader kullanarak test koşumundan test ettim; Bu kod girecek uygulamasında SqlDbType.Xml ADO.NET parametresi

Dim xmlParam As SqlParameter = New SqlParameter("@xml", SqlDbType.Xml) 
xmlParam.Value = New SqlTypes.SqlXml(XmlReader.Create(txtXMLFile.Text)) 
.Parameters.Add(xmlParam) 

, gerçek XML Karşılaştığım MSXML.DOMDocument40 sıralamakta nasıl çalıştı (VB6 proje msxml4 başvuran) bir MSXML2.DOMDocument40 nesnesinde, VB6 nesnede olduğu VB6'dan .NET'e - aslında .NET projesi zaten MSXML4'e başvurur, bu da her şey yolunda. Şimdi tek yapmam gereken, bu dönüştürülmüş dosyayı düzgün bir şekilde almak, böylece saklanan proba aktarılabiliyor.

System.XML.XMLReader, akış nesneleri alan bir çok aşırı yüklenmeye sahip, MSXML nesnesinin üzerinde bir akış oluşturabilir miyim diye merak ediyorum? Ya da MSXML'yi bir .NET XML türüne dönüştürebilirim, bu daha sonra kullanılabilir mi?

Açıkçası performans göz önünde bulundurulacak ama şu an için nasıl yapılacağını öğrenmek zorundayım!

cevap

0

Daha iyi bir fikir, MSXML ve .NET'i hiç karıştırmamaktır.

Gerekirse, MSXML nesnesinden xml dizesini alın ve dizenin üzerine bir XmlReader oluşturun veya dizeyi bir XmlDocument içine yükleyin.

+0

teşekkürler - sonunda düşündüğümden daha evet daha basit olduğu ortaya çıktı - Ne yazık ki sadece çalışmak seçeneği yok XMLDocument dönüşüm için gerek - Ben de bunu MSXMLDoc.XML dize geçen bir XMLTextReader kullanılan .NET ile birlikte çalışma hayatı bir gerçek! Teşekkürler – DannykPowell

0

MSXML DOM, COM IStream arabirimini uygulayan her şeye kaydedecektir; bu nedenle, bir .NET akışına eşlenen bir uygulama bulabilirseniz, bunu oldukça verimli bir şekilde karşılayabilmeniz gerekir.