verwendetes Datenbanksystem: <xml>
Hallo Leute,
ich habe zwei Klassen:
Klasse A stellt eine Methode getNode, der eine xmlTextWriter Instanz übergeben wird. Diese Methode macht nichts anders als ein spezielles Node zu schreiben.
Klasse ACollection ist eine Klasse, die IList, ICollection und IEnumerable erbt und Member vom Typ Klasse A aufnimmt. Zusetzlich hat sie die Methode GetNodes, der eine xmlTextWriter Instanz übergeben wird.
Die Methode ist so aufgebaut
public void GetNodes(XmlTextWriter writer)
{
foreach(ClassA classObject in classACollection)
{
classObject.getNode(writer);
}
}
Aussehen sollte das Ganze dann so:
<NodeA>
...
</NodeA>
<NodeA>
...
</NodeA>
Aussehen tuts aber so:
<NodeA>
...
<NodeA>
...
</NodeA>
</NodeA>
Hat jemand eine Idee was ich falsch mache? Ich finde meine Logik ok, aber sie ist es ja offensichtlich nicht.
Wie sieht denn die GetNode Methode genau aus?
Ich weiß nicht was du vorhast, aber vllt. währe Xml-Serialisierung für dich was. In deinem Fall könnte beispielsweise so die Parent-Klasse von ACollection aussehen:
[XmlRoot("ParentElement")]
public class Parent {
[XmlArray("Nodes")]
[XmlArrayItem("NodeA")]
public ACollection Nodes { get; }
}
Ausgabe wäre:
<ParentElement>
<Nodes>
<NodeA>
...
</NodeA>
<NodeA>
...
</NodeA>
<NodeA>
...
</NodeA>
</Nodes>
</ParentElement>
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Hallo kleines_eichhoernchen,
vielen Dank für den Hinweis. Ich denke da werde ich mich schnellstmöglich Einlesen.
Inzwischen habe ich auch den Fehler für die fehlerhafte Ausgabe gefunden. Es war ein fehlendes writeEndElement();
@mirkom76: entschuldige, Ich wurde über deinen Beitrag nicht informiert. Somit habe ich ihn nicht bemerkt.