Frage

Ich scheine immer Probleme zu haben, mit Daten zu und von XML in C # zu konvertieren. Es will, dass Sie immer ein volles XMLDocument-Objekt selbst erstellen, wenn Sie denken, sollten nicht haben. In diesem Fall habe ich eine SQLXML Spalte in einer MS SQL 2005 Server, die ich herausziehen versuche und schieben in eine Funktion, die einen XMLNode als Parameter erfordert. Sie würden denken, dies einfach sein würde, sondern außerhalb in einen String umzuwandeln und ein neues XMLNode-Objekt erstellen kann ich nicht den richtigen Weg finden, um es zu tun.

Ich kann einen SqlDataReader verwenden, der sqlComm.ExecuteReader (), um den Leser zu laden, und sqlReader.GetSqlXml (0) das SQLXML-Objekt zu erhalten, dann aber wie kann ich es in ein XmlNode umwandeln?

Im Gegensatz dazu kann ich die sqlComm.ExecuteXmlReader () verwenden, um einen XmlReader zu bekommen, aber wie extrahiere ich einen XmlNode aus dem Leser? http://bytes.com/forum/thread177004.html sagt, es kann nicht mit einem getan werden XmlTextReader, sollte ich eine XmlNodeReader?

Hilfe bitte!

War es hilfreich?

Lösung

ich am Ende nicht zu verwenden, aber ich fand, was ich denke, die beste Antwort ist. Grundsätzlich Sie eine XmlReader laden, erstellen Sie ein XmlDocument aus dem Leser, wählen Sie dann eine Liste von Knoten aus dem Dokument in eine XmnLodeList, die Sie in einer foreach-Anweisung verwenden können. Hier ist ein Beispielcode:

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

Still wie die Hölle gewunden, aber zumindest gibt es keine xml Zeichenfolge xml Konvertierungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top