Laden...

XML: RootNode wird nicht geschrieben, warum?

Erstellt von dr4g0n76 vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.616 Views
dr4g0n76 Themenstarter:in
2.921 Beiträge seit 2005
vor 17 Jahren
XML: RootNode wird nicht geschrieben, warum?

Habe folgendes Problem:

ich versuche ein XmlDocument zu erstellen, indem ich Knoten an ein XmlDocument anhänge (im VS Express 2005).

Es funktioniert alles, bis auf das Root Element "streams", das wird einfach nicht geschrieben.

Ich seh den Fehler nicht. Kann mir jemand kurz helfen?
Hab wohl heute zu lange programmiert...


     XmlDocument xmlDoc = StreamXML.XmlDocument; //Diese wurde mit new XmlDocument() erzeugt, es hängt noch nichts daran.

            XmlNode nodeTemp = xmlDoc.CreateElement("streams"); //wird nicht geschrieben, warum???
            XmlNode node = xmlDoc.AppendChild(nodeTemp);
            int nNeededElementsCount = 9;
            string sFile = ChooseFile();
            if (File.Exists(sFile))
            {
                StreamReader streamReader = new StreamReader(sFile);
                string sText = streamReader.ReadToEnd();
                string[] saLines = sText.Split('|');
                for (int i = 0; i < saLines.GetLength(0); i++)
                {
                    //Es sollten 9 Elemente sein
                    string[] saElements = saLines[i].Split('>');
                    if (saElements.GetLength(0)== nNeededElementsCount )
                    {
                        node.AppendChild(StreamXML.CreateNode(saElements, true));
                    }
                }
                streamReader.Close();

            }
            XmlTextWriter xmlTextWriter = new XmlTextWriter("Test.xml", Encoding.Default);
            xmlTextWriter.Formatting = Formatting.Indented;

            nodeTemp.WriteContentTo(xmlTextWriter);
            xmlTextWriter.Close();

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.

dr4g0n76 Themenstarter:in
2.921 Beiträge seit 2005
vor 17 Jahren

Kann denn da keiner helfen?

Der Teil mit dem If kann ignoriert werden, selbst so funktioniert es nicht:


           XmlDocument xmlDoc = new XmlDocument();

            XmlNode node = xmlDoc.CreateElement("streams");
            XmlNode nodeTemp = xmlDoc.AppendChild(node);
            XmlTextWriter xmlTextWriter = new XmlTextWriter("Test.xml", Encoding.Default);
            xmlTextWriter.Formatting = Formatting.Indented;

            nodeTemp.WriteContentTo(xmlTextWriter);
            xmlTextWriter.Close();

Ich erhalte einfach keine Xml-Datei in der "streams" als Root-Knoten definiert wäre...

WIESO?

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.

dr4g0n76 Themenstarter:in
2.921 Beiträge seit 2005
vor 17 Jahren

Ok, habs umgangen, nicht gelöst.

So:

StreamWriter.WriteRaw("<streams>");
node.WriteContentTo(StreamWriter);
StreamWriter.WriteRaw("</streams>");

hab aber immer noch keine Ahnung, was der Fehler ist...

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.

476 Beiträge seit 2004
vor 17 Jahren

hallo dr4g0n76,

du solltest die Methode WriteTo nutzen, wenn du den Knoten mitschreiben möchtest, bei WriteContentTo schreibt er nur den Inhalt.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de