Frage

Wie kann ich mich über die Ergebnisse eines FOR XML PATH gespeicherte Prozedur in dem Speicher anstelle einer Datei auf der Festplatte zu schreiben?

Aktuelle Art und Weise, Dinge zu tun:

private  void GetChartData(string OC_Ttl1, string OC_Ttl2, string OC_OL31)
{
    OC_Ttl_1 = OC_Ttl1;
    OC_Ttl_2 = OC_Ttl2;
    OC_OL3_1 = OC_OL31;
    //Output xml
    DataSet orgDataSet = new DataSet();
    orgDataSet.ReadXml(cmd_Org.ExecuteXmlReader(), XmlReadMode.Auto);
    orgDataSet.WriteXml("InputXMLFiles/" + OC_OL3_1.Replace(" ", 
        "_").Replace("/", "-") + ".xml");
}

Statt die Datei auf die Festplatte zu schreiben, die anderen Methoden arbeiten dann auf, ich möchte diese Methode haben, die xml memeory zurück.

Ich gehe davon aus, dass dies viel schneller sein würde als auf der Festplatte zu schreiben ....

War es hilfreich?

Lösung

Sie haben eine XmlReader - Sie tun können, alle möglichen Dinge. Zum Beispiel

XmlDocument doc = new XmlDocument();
using(XmlReader xr = cmd_Org.ExecuteXmlReader()) {
    doc.Load(xr);
}
// TODO: play with "doc" with xpath etc

Andere Tipps

DataSet.WriteXml hat viele Überlastungen - können Sie in einen Stream (einschließlich eines MemoryStream) und Schriftsteller (einschließlich eines StringWriter) schreiben. Das ist vorausgesetzt, Sie wirklich über eine DataSet gehen wollen -. Wenn Sie glücklich, die XML direkt erhalten, ohne einen DataSet zu verwenden, dann benutzen Sie einfach Marc Vorschläge

Sie können die Überlastung von WriteXml aufrufen, die in einen Stream schreibt, und ein MemoryStream verwenden, obwohl Sie kann bedeuten, dass Sie die XML als große lange Zeichenfolge wollen.

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