Pregunta

Parece que siempre tengo problemas con la conversión de datos hacia y desde XML en C#.Siempre quiere que crees un objeto XMLDocument completo incluso cuando crees que no deberías hacerlo.En este caso, tengo una columna SQLXML en un servidor MS SQL 2005 que estoy intentando extraer e insertar en una función que requiere un XMLNode como parámetro.Se podría pensar que esto sería fácil, pero aparte de convertirlo en una cadena y crear un nuevo objeto XMLNode, no puedo encontrar la manera correcta de hacerlo.

Puedo usar SqlDataReader, sqlComm.ExecuteReader() para cargar el lector y sqlReader.GetSqlXml(0) para obtener el objeto SQLXML, pero entonces, ¿cómo lo convierto en un XmlNode?

Por el contrario, puedo usar sqlComm.ExecuteXmlReader() para obtener un XmlReader, pero ¿cómo extraigo un XmlNode del lector? http://bytes.com/forum/thread177004.html dice que no se puede hacer con XmlTextReader, ¿debería usar un XmlNodeReader?

¡Ayuda por favor!

¿Fue útil?

Solución

Terminé sin tener que usarlo, pero encontré la que creo que es la mejor respuesta.Básicamente, carga un XmlReader, crea un XmlDocument desde el lector y luego selecciona una lista de nodos del documento en una XmnLodeList, que puede usar en una declaración ForEach.Aquí hay un código de muestra:

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

Todavía es muy complicado, pero al menos no hay conversiones de xml para encadenar a xml.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top