Laden...

Problem mit Xml und gleichnamigen Nodes

Erstellt von hobo vor 16 Jahren Letzter Beitrag vor 16 Jahren 976 Views
H
hobo Themenstarter:in
29 Beiträge seit 2007
vor 16 Jahren
Problem mit Xml und gleichnamigen Nodes

Hallo, ich will mit folgendem Code ein Xml erzeugen, was auch fast klappt:

XmlDocument serXml = new XmlDocument();
serXml.AppendChild(serXml.CreateElement("LaTexVorlage"));

XmlNode root = serXml.DocumentElement;

XmlNode eigenschaften = serXml.CreateElement("Eigenschaften");
root.AppendChild(eigenschaften);

XmlNode name = serXml.CreateElement("Name");
name.InnerText = tplName;
eigenschaften.AppendChild(name);
XmlNode textpl = serXml.CreateElement("LaTexTemplate");
textpl.InnerText = tplTexPath;
eigenschaften.AppendChild(textpl);

XmlNode feld = serXml.CreateElement("Feld");
root.AppendChild(feld)

XmlNode fname = serXml.CreateElement("Name");
fname.InnerText = felder[i].Name;
feld.AppendChild(name);  // hier

XmlNode fmarker = serXml.CreateElement("Marker");
fmarker.InnerText = felder[i].Marker;
feld.AppendChild(fmarker);

Eigentlich sollte das dann ein Xml der folgenden Form geben:

<LaTexVorlage>

	<Eigenschaften>
		<Name>Privater Brief</Name>
		<LaTexTemplate>D:\vs8\a.tex</LaTexTemplate>	
	</Eigenschaften>
	
	<Feld>
		<Name>Betreff</Name>
		<Marker>[[subject]]</Marker>
	</Feld>
	
</LaTexVorlage>

Das funktioniert auch fast, bis zu der Codezeile, die ich mit //hier gekennzeichnet habe. Hier wird nämlich das Name-Element aus "Eigenschaften" wieder gelöscht, weil sich das wahrscheinlich mit dem gleichnamigen Element das dort erzuegt wird auf die Füße steigt.

Wie kann man das lösen?

U
1.688 Beiträge seit 2007
vor 16 Jahren

Sollte das nicht
feld.AppendChild(fname);
heißen?

H
hobo Themenstarter:in
29 Beiträge seit 2007
vor 16 Jahren

Ja, das war der Fehler. Danke