Laden...

xmlTextWriter Problem

Erstellt von tequila slammer vor 15 Jahren Letzter Beitrag vor 15 Jahren 718 Views
T
tequila slammer Themenstarter:in
253 Beiträge seit 2006
vor 15 Jahren
xmlTextWriter Problem

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.

M
110 Beiträge seit 2007
vor 15 Jahren

Wie sieht denn die GetNode Methode genau aus?

Gruss

Mirko

Mappen statt hacken mit Invist , dem .NET O/R Mapper - Code Generator

3.971 Beiträge seit 2006
vor 15 Jahren

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

T
tequila slammer Themenstarter:in
253 Beiträge seit 2006
vor 15 Jahren

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.