Laden...

XML schreiben mit Hilfe einer Schleife in C#

Erstellt von Liathne vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.318 Views
L
Liathne Themenstarter:in
1 Beiträge seit 2006
vor 17 Jahren
XML schreiben mit Hilfe einer Schleife in C#

Guten Tag zusammen.

Ich hab folgendes Problem:
Ich lese ein XML Dokument ein, verarbeite die darin enthaltenen Daten und möchte auf Basis dieser Daten ein neues XML Dokument erstellen.

Bis jetzt habe ich das wie folgt gemacht:

 myRoot = doc.CreateElement("input");
            doc.AppendChild(myRoot);

            qcNode = doc.CreateElement("qualitycontrol");

            qcAttribute1 = doc.CreateAttribute("type");
            qcAttribute1.InnerText = "no";
            qcAttribute2 = doc.CreateAttribute("losequantity");
            qcAttribute2.InnerText = "0";
            qcAttribute3 = doc.CreateAttribute("delay");
            qcAttribute3.InnerText = "0";

            qcNode.Attributes.Append(qcAttribute1);
            qcNode.Attributes.Append(qcAttribute2);
            qcNode.Attributes.Append(qcAttribute3);
            myRoot.AppendChild(qcNode);

Klappt auch alles wunderbar, jedoch möchte ich das ganze nun vereinfachen, da der benötigte XML Code im nächsten Schritt so aussehen muss:

productionlist>
  <production article="1" quantity="200" /> 
  <production article="2" quantity="100" /> 
  <production article="3" quantity="80" /> 
  <production article="4" quantity="120" /> 
  <production article="5" quantity="100" /> 
  <production article="6" quantity="80" /> 
  <production article="7" quantity="320" /> 
  <production article="8" quantity="150" /> 
  <production article="9" quantity="80" /> 
  <production article="10" quantity="250" /> 
  <production article="11" quantity="150" /> 
  <production article="12" quantity="80" /> 
  <production article="13" quantity="80" /> 
  <production article="14" quantity="150" /> 
  <production article="15" quantity="80" /> 
  <production article="16" quantity="90" /> 
  <production article="17" quantity="90" /> 
  <production article="18" quantity="360" /> 
  <production article="19" quantity="250" /> 
  <production article="20" quantity="160" /> 
  <production article="26" quantity="600" /> 
  <production article="29" quantity="150" /> 
  <production article="30" quantity="150" /> 
  <production article="31" quantity="80" /> 
  <production article="49" quantity="500" /> 
  <production article="50" quantity="500" /> 
  <production article="51" quantity="400" /> 
  <production article="54" quantity="220" /> 
  <production article="55" quantity="200" /> 
  <production article="56" quantity="200" /> 
  </productionlist>

Wobei ich den Inhalt der Attribute article und quantity jeweils aus einer Variablen auslese.

Falls ich nun so vorgehe wie in meinem ersten Codebeispiel, finde ich die Lösung sehr unschön, mich würde nun interessieren, ob es eine elegantere Lösung ohne zuviel stumpfsinnigen Tippaufwand gibt.

Vielen Dank für eure Mühen.

Liathne

476 Beiträge seit 2004
vor 17 Jahren

hallo Liathne,

du nimmst den Code-Teil, der dir die einzelnen Knoten erstellt, und lagerst ihn in eine separate Methode aus, welche du in einer Schleife für jedes Wertepaar aufrufst und die Variablen als Parameter übergibst.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de