XML Daten einfügen

06/08/2011 - 10:37 von Volker Hofheinz | Report spam
Hallo NG,

folgendes Problem:
ich habe eine XML-Datei, die per Programm befüllt werden soll. Der Aufbau
sieht folgendermaßen aus:

<?xml version="1.0" encoding="UTF-8"?>
<mediation>
<med>
<ID>456</ID>
<Datum>15.02.2011</Datum>
<Filename>med2.xls</Filename>
</med>
<med>
<ID>123</ID>
<Datum>30.01.2011</Datum>
<Filename>med.xls</Filename>
</med>
<med>
<ID>555</ID>
<Datum>06.08.2011 10:14:51</Datum>
<Filename>c:\med.xls</Filename>
</med>
</mediation>

Nun will ich einen neuen Knoten med mit Inhalt befüllen. Der Code sieht
folgendermaßen aus:

void XML-Befuellen()
{
XmlDocument xd = new XmlDocument();
xd.Load(@"d:\\mediation.xml");
XmlNode root = xd.DocumentElement, node;
if (root != null)
{

node = root.LastChild;
root.AppendChild(xd.CreateElement("med"));
node = root.SelectSingleNode("med");

node.AppendChild(xd.CreateElement("ID")).InnerText = "555";
node.AppendChild(xd.CreateElement("Datum")).InnerText =
System.DateTime.Now.ToString();
node.AppendChild(xd.CreateElement("Filename")).InnerText =
"c:\\med.xls";

}
xd.Save(@"d:\\mediation.xml");
}

Er schreibt die Elemente aber immer in ein bestehenden Node.

Wo liegt mein Denkfehler?

Gruß und Danke,

Volker

P.S. habe bisher mit XML keine Erfahrungen
 

Lesen sie die antworten

#1 sowhat
07/08/2011 - 07:14 | Warnen spam
Am 06.08.2011 10:37, schrieb Volker Hofheinz:

node = root.SelectSingleNode("med");

node.AppendChild(xd.CreateElement("ID")).InnerText = "555";
node.AppendChild(xd.CreateElement("Datum")).InnerText > System.DateTime.Now.ToString();
node.AppendChild(xd.CreateElement("Filename")).InnerText = "c:\\med.xls";

Wo liegt mein Denkfehler?



was bezweckst du mit dem SelectSingleNode an der Stelle?


fixed if block -
root.AppendChild(xd.CreateElement("med"));
node = root.LastChild;

node.AppendChild(xd.CreateElement("ID")).InnerText = "555";
node.AppendChild(xd.CreateElement("Datum")).InnerText =
System.DateTime.Now.ToString();
node.AppendChild(xd.CreateElement("Filename")).InnerText = "c:\\med.xls";
-

Ähnliche fragen