تحويل C# 2.0 نظام.البيانات.SqlTypes.SqlXml كائن في النظام.Xml.XmlNode

StackOverflow https://stackoverflow.com/questions/90803

سؤال

يبدو لي أن يكون دائما مشاكل مع تحويل البيانات من XML في C#.دائما يريد لك لخلق مجموعة كاملة XMLDocument كائن حتى عندما كنت تعتقد أنك لا ينبغي أن يكون.في هذه الحالة لدي SQLXML عمود في MS SQL server 2005 التي أحاول سحب ودفع إلى وظيفة يتطلب XMLNode كمعلمة.كنت أعتقد أن هذا سيكون سهلا ، ولكن خارج تحويلها إلى سلسلة وخلق جديد كائن XMLNode أنا لا يمكن معرفة الطريقة الصحيحة للقيام بذلك.

يمكنني استخدام SqlDataReader ، sqlComm.ExecuteReader() لتحميل القارئ ، sqlReader.GetSqlXml(0) للحصول على SQLXML كائن,لكن كيف يمكنني تحويل XmlNode?

على العكس من ذلك يمكنني استخدام sqlComm.ExecuteXmlReader() للحصول على XmlReader ، ولكن كيف يمكنني استخراج XmlNode من القارئ ؟ http://bytes.com/forum/thread177004.html يقول أنه لا يمكن القيام به مع XmlTextReader علي استخدام XmlNodeReader?

مساعدة من فضلك!

هل كانت مفيدة؟

المحلول

انتهى بي الأمر لا الحاجة إلى استخدامه ، ولكن وجدت ما أعتقد هو أفضل إجابة.أساسا يمكنك تحميل XmlReader إنشاء XmlDocument من القارئ ، ثم حدد قائمة العقد من الوثيقة إلى XmnLodeList التي يمكنك استخدامها في بيان ForEach.هنا بعض التعليمات البرمجية:

System.Xml.XmlReader sqlXMLReader = sqlComm.ExecuteXmlReader();
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlDoc.Load(sqlXMLReader);
System.Xml.XmlNodeList xnlJobs = xmlDoc.SelectNodes("/job");

لا تزال معقدة كما الجحيم ، ولكن على الأقل هناك لا xml إلى سلسلة xml التحويلات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top