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.
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.
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.
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