XML auslesen und rückschreiben in ArrayList
-
Hallo erst mal!
Ich will eine XML-Datei mit jeweils einem String und einem Double auslesen und die Daten in einer Listbox ausgeben. Die Listbox soll dann wie eine Tabelle mit zwei Spalten aufgebaut werden. Beim auslesen der XML-Datei, sollen die Werte in eine ArrayList übergeben werden. Leider bin ich in C# wie auch dessen Vorgängern C und C++ noch ein totaler Neueinsteiger, da ich bisher nur SQL und FOXPro programmiert hab. Finde darum auch nicht so recht einen Faden. Hab zwar schon sämtliche Kommentare durchgelesen, aber ich check diesen Klassenaufbau einfach nicht.
Hoffe ihr könnt mir weiter helfen.Gruß Snoopy!!!
-
also,
vielleicht so in der Art:using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Xml.Serialization; namespace WindowsApplication1 { public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; private System.Windows.Forms.ListBox listBox1; private System.ComponentModel.Container components = null; public Form1() { InitializeComponent(); } protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Vom Windows Form-Designer generierter Code /// <summary> /// Erforderliche Methode für die Designerunterstützung. /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. /// </summary> private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.listBox1 = new System.Windows.Forms.ListBox(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(128, 16); this.button1.Name = "button1"; this.button1.TabIndex = 0; this.button1.Text = "button1"; this.button1.Click += new System.EventHandler(this.button1_Click); // // button2 // this.button2.Location = new System.Drawing.Point(352, 16); this.button2.Name = "button2"; this.button2.TabIndex = 1; this.button2.Text = "button2"; this.button2.Click += new System.EventHandler(this.button2_Click); // // listBox1 // this.listBox1.Location = new System.Drawing.Point(112, 88); this.listBox1.Name = "listBox1"; this.listBox1.Size = new System.Drawing.Size(192, 160); this.listBox1.TabIndex = 2; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(488, 317); this.Controls.Add(this.listBox1); this.Controls.Add(this.button2); this.Controls.Add(this.button1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); } #endregion [STAThread] static void Main() { Application.Run(new Form1()); } private void button1_Click(object sender, System.EventArgs e) { System.Xml.Serialization.XmlSerializer Serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyDataHolder)); System.Xml.XmlTextWriter TextWriter= new System.Xml.XmlTextWriter("C:\\test.xml",System.Text.Encoding.UTF8); MyDataHolder Holder=new MyDataHolder(); Holder.List.Add(new MyData(4)); Holder.List.Add(new MyData(5)); Holder.List.Add(new MyData(6)); Serializer.Serialize(TextWriter,Holder); TextWriter.Close(); } private void button2_Click(object sender, System.EventArgs e) { System.Xml.Serialization.XmlSerializer Serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyDataHolder)); System.Xml.XmlTextReader TextReader= new System.Xml.XmlTextReader("C:\\test.xml"); MyDataHolder Holder= (MyDataHolder)Serializer.Deserialize(TextReader); listBox1.DataSource=null; listBox1.DataSource=Holder.List; listBox1.DisplayMember="TheInt"; TextReader.Close(); } } public class MyDataHolder { private ArrayList _List; [XmlArrayItem( ElementName="List",Type=typeof(MyData))] public ArrayList List { get{return _List;} set{_List=value;} } public MyDataHolder() { _List=new ArrayList(); } } [XmlRoot("MyData")] public class MyData { private int _TheInt; public MyData(){} public MyData(int AIntValue){_TheInt=AIntValue;} [XmlAttribute("TheInt")] public int TheInt { get{return _TheInt;} set{_TheInt=value;} } // hier dein Double noch } }