Pergunta

I parecem sempre ter problemas com a conversão de dados de e para XML em C #. Ele sempre quer que você criar um objeto XMLDocument cheia mesmo quando você acha que não deveria. Neste caso eu tenho uma coluna SQLXML em um servidor MS SQL 2005 que eu estou tentando puxar e empurrar para uma função que requer uma XMLNode como parâmetro. Você pensaria que isso seria fácil, mas fora de convertê-lo em uma string e criar um novo objeto XMLNode eu não consigo descobrir o caminho certo para fazê-lo.

Eu posso usar um SqlDataReader, o sqlComm.ExecuteReader () para carregar o leitor, e sqlReader.GetSqlXml (0) para obter o objeto SQLXML, mas então como faço para convertê-lo em um XmlNode?

Por outro lado eu posso usar o sqlComm.ExecuteXmlReader () para obter um XmlReader, mas como faço para extrair um XmlNode do leitor? http://bytes.com/forum/thread177004.html diz que não pode ser feito com um XmlTextReader, eu deveria usar um XmlNodeReader?

Ajuda por favor!

Foi útil?

Solução

acabei não ter que usá-lo, mas eu achei que eu acho que é a melhor resposta. Basicamente você carregar um XmlReader, criar um XmlDocument do leitor, em seguida, selecione uma lista de nós do documento em um XmnLodeList, que você pode usar em uma instrução ForEach. Aqui está um código de exemplo:

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

Ainda complicado como o inferno, mas pelo menos não há xml a corda para conversões XML.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top