Laden...

XML Welche Klassen nehmen?

Erstellt von Atomroflman vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.526 Views
A
Atomroflman Themenstarter:in
266 Beiträge seit 2007
vor 16 Jahren
XML Welche Klassen nehmen?

Heyho,

ich versuche gerade in einem Programm Dateipfade zu speichern. Das Eingeben funktioniert so weit auch schon, aber wenn ich es in mein XML File schreiben möchte kommt entweder eine Exeption oder die XML bleibt leer.

Ich benutze derzeit XmlTextWriter & XmlTextReader.

Gibts da vielleichte eine elegante Lösung ?(

Von all den Sachen, die mir verloren gegangen, hab ich am meisten an meinem Verstand gehangen... MfG...

3.511 Beiträge seit 2005
vor 16 Jahren

Nunja, XmlTextWriter ist doch schonmal was.

Aber ich denke mal, das du in deinem Code irgendwo ein Fehler hast. Wenn eine Exception auftritt, welche genau? Der XmlTextWriter ist relativ penibel, was die Struktur der XML Datei angeht.

Andere Möglichkeit: Wie speicherst du die Pfade? In einer Collection? Wenn ja, serialisiert die Collection einfach mit dem XMLSerializer.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

A
Atomroflman Themenstarter:in
266 Beiträge seit 2007
vor 16 Jahren

Hi Khalid,

er schmeisst öfters "Root doesn't exist" im moment aber nicht... Er schreibt halt nur nichts in die XML...
Und ich Speicher sie momentan in einem String Array...

Von all den Sachen, die mir verloren gegangen, hab ich am meisten an meinem Verstand gehangen... MfG...

3.511 Beiträge seit 2005
vor 16 Jahren

Kannst du den Code zeigen, in dem du XML Datei mit dem XmlTextWriter erstellst?

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

A
Atomroflman Themenstarter:in
266 Beiträge seit 2007
vor 16 Jahren

        void WriteItIntoXml(string[] StringsToAdd)
        {
            for (int i = 0; i < StringsToAdd.Length / 2; i++)
            {
                WriteIt.WriteElementString("Application", SaveStrings[i * 2]);
                WriteIt.WriteElementString("Image", SaveStrings[i * 2 + 1]);
            }
                SaveIndex = 0;
        }

        private void Form2_Dispose(object sender, EventArgs e)
        {
            if (SaveStrings.Length > SaveIndex * 2)
            {
                SaveStrings[SaveIndex * 2] = SaveStringAppPath;
                SaveStrings[SaveIndex * 2 + 1] = SaveStringAppIcon;
                SaveIndex++;
            }
            else
            {
                WriteItIntoXml(SaveStrings);
                
            }
        }

Von all den Sachen, die mir verloren gegangen, hab ich am meisten an meinem Verstand gehangen... MfG...

S
8.746 Beiträge seit 2005
vor 16 Jahren

Original von Atomroflman
Gibts da vielleichte eine elegante Lösung ?(

Gibt es. Verwende XML-Serialisierung (Stichwort XMLSerializer).

T
223 Beiträge seit 2006
vor 16 Jahren

Hi,

Du musst auch eine gültige Struktur erstellen, das heißt du brauchst die XML Deklaration am Anfang und ein Wurzelelement, dass allen anderen übergeordnet ist und du solltest den Writer auch wieder schließen.

Gruß Thomas