Domanda

Mi sembra di avere sempre problemi con la conversione di dati da XML in C#.Si vuole sempre di si per la creazione di un oggetto XMLDocument anche quando pensi di non.In questo caso ho un SQLXML colonna di MS SQL server 2005, che sto cercando di tirare e spingere in una funzione che richiede un XMLNode come parametro.Si potrebbe pensare che questo sarebbe stato facile, ma al di fuori di conversione di una stringa e la creazione di un nuovo oggetto XMLNode non riesco a capire il modo giusto per farlo.

Posso utilizzare un SqlDataReader, il sqlComm.ExecuteReader() per caricare il lettore, e sqlReader.GetSqlXml(0) per ottenere l'oggetto SQLXML,ma poi come faccio a convertire un XmlNode?

Al contrario posso usare il sqlComm.ExecuteXmlReader() per ottenere un XmlReader, ma come faccio ad estrarre un XmlNode dal lettore? http://bytes.com/forum/thread177004.html dice che non può essere fatto con un XmlTextReader, devo utilizzare un XmlNodeReader?

Aiuto per favore!

È stato utile?

Soluzione

Ho finito per non dover usare, ma ho trovato quello che penso sia la risposta migliore.Fondamentalmente si carica un XmlReader, creare un XmlDocument dal lettore, quindi selezionare una lista di nodi in un documento di XmnLodeList, che è possibile utilizzare in un ForEach.Ecco qualche esempio di codice:

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

Ancora contorto come l'inferno, ma almeno non ci sono xml per stringa xml conversioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top