Ich verzweifele an einer zeile XML! :-(



  • Hallo,

    ich bin verzweifelt!

    Ich möchte gerne folgendes in eine XML-Datei schreiben:

    <?xml version="1.0" encoding="UTF-8"?>
    <elemente>
    	<control type="System.Windows.Forms.TextBox" name="txtBox1">
    		<property type="System.String" name="Text">Dies ist ein Test</property>
    	</control>
    
    	<control type="System.Windows.Forms.TextBox" name="txtBox2">
    		<property type="System.String" name="Text">Dies ist auch ein Test</property>		
    	</control>
    </elemente>
    

    Meine Kenntnisse reichen aber nur aus um sowas zu machen:

    <age>20</age> 😞

    Wer kann mir sagen, wie ich in die xml-datei zeilen wie <control type="hallo" name="guten tag"> einbringen kann?

    Ich bin sowas von am verzweifeln, das geht gar nicht! 😮 😞 😞 😞



  • Musst halt die Doku lesen, wie man zu den Tags Kinder und Attribute hinzufügt.



  • Bitte ein Beispiel. Nur ein ganz Kleines! 😞

    Ich bin so verzweifelt 😞



  • Ich, KannKeinC#, kann kein C#, aber bei google (oder anderen Suchmaschinen) 😉 gibts sicher viele Beispiele.



  • Aber ich brauche doch nur ein ganz kleines Beispiel. Es muss nicht viel sein! 😞

    Jemand anders vielleicht?

    Ich bin echt verzweifelt 😞 😞



  • Naja, mit welcher Lib baust du denn das XML?
    Aber egal welche das ist: RTFM. Denn das gibt's bestimmt im Tutorial.

    Und erst wenn du das Tutorial nich verstehst - dann würde ich langsam verzweifeln.



  • Hallo, ich bin so verzweifelt.

    Ich benutze das DOM-Objekt und benutze diese Infoseite: http://www.microsoft.com/germany/msdn/library/data/xml/SoBearbeitenSieXMLDatenInNET.mspx?mfr=true

    Da gibts aber kein Beispiel, was das abdeckt, was ich machen will.

    Helft mir doch bitte, anstatt euch über mich lustig zu machen 😞 😞 😞



  • nur um Dir mal etwas Backgrund zu verschaffen

    mach nen Konsolenprojekt auf und kopier folgenden Code einfach drüber,
    dann dokdere nach belieben drumrum, weiter dranrum

    using System;
    using System.Xml;
    using System.Xml.Serialization;
    using System.Windows.Forms;
    
    namespace ConsoleApplication1
    {
    	/// <summary>
    	/// Zusammenfassung für Class1.
    	/// </summary>
    	public class Class1
    	{
    		/// <summary>
    		/// Der Haupteinstiegspunkt für die Anwendung.
    		/// </summary>
    		[STAThread]
    		static void Main(string[] args)
    		{
    			Button btn1 = new Button(); btn1.Name = "btn1";
    			Button btn2 = new Button(); btn2.Name = "btn2";
    			Ctrl [] ctrls = new Ctrl [2];
    			Ctrl    ctrl1 = new Ctrl(btn1);
    			Ctrl    ctrl2 = new Ctrl(btn2);
    			ctrls[0] = ctrl1;
    			ctrls[1] = ctrl2;
    			Elemente elem = new Elemente(ctrls);
    
    			XmlTextWriter xmlw = new XmlTextWriter("c:\\elemente.xml", null);
    			try
    			{
    
    				XmlSerializer xmls = new XmlSerializer(typeof(Elemente));
    				xmls.Serialize(xmlw, elem);
    			}
    			catch(System.Exception ex)
    			{
    				Console.WriteLine(ex.Message);
    			}
    			Console.Read();
    
    		}
    
    		public class Elemente
    		{
    			public Ctrl [] ctrls;
    			public Elemente(Ctrl [] ctrls)
    			{
    				this.ctrls = ctrls;
    			}
    
    			public Elemente()
    			{
    				ctrls = null;
    			}
    		}
    
    		public class Ctrl
    		{
    			private string type;
    			private string name;
    
    			[XmlElementAttribute(IsNullable = false)]
    			public string Type
    			{
    				get
    				{
    					return type;
    				}
    				set
    				{
    					type = value;
    				}
    			}
    
    			[XmlElementAttribute(IsNullable = false)]
    			public string Name
    			{
    				get
    				{
    					return name;
    				}
    				set
    				{
    					name = value;
    				}
    			}
    
    			public Ctrl(Object control)
    			{
    				Type = control.GetType().ToString();
    				if(control is System.Windows.Forms.Control)
    					Name = (control as System.Windows.Forms.Control).Name;
    				else
    					Name = "noname, because it is no GUI-Control";
    			}
    
    			public Ctrl()
    			{
    				Type = "undefined";
    				Name = "noname";
    			}
    		}
    	}
    }
    

    Um was besser zu verstehen such im Internet und MSDN nach XmlSerializer.

    Willst Du attributierte Elemente wirs Du um den Einsatz des XmlTextWriter im herkömmlichen Sinne nicht drumrumkommen 👍



  • Und hier noch ein sinnvolleres Beispiel zum XmlSerializer

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-149492.html



  • Hast Du denn Sinn des XmlSerializer und dessen Anwendung verstanden,
    wirst Du mit erstaunen feststellen:

    Das Du nicht einen Finger krum gemacht hast um den XML-Skript tiefgruendig
    selbst zu schreiben

    Und das man im Prinzip beim Einsatz dieser Klasse kein XML-Guru sein muss

    Gruss sclearscreen



  • Hi sclearscreen,

    Du bist der Beste! Genau sowas brauchte ich, vielen vielen Dank! Du bist mein Held!

    @andere: Nehmt euch mal ein Beispiel an diesem wertvollen Forumsmitglied.

    Jetzt bin ich wieder glücklich.

    Nochmals vielen Dank! 👍 👍 👍



  • Wenn du es selber raus gefunden hättest wärst du noch viel glücklicher.



  • ihr mal die ID von dem Thread ändern?



  • Ich mach den thread zu wegen der ständigen spam-bot beitrage hier.
    Wenns noch Fragen gibt bitte einen neuen thread starten.


Anmelden zum Antworten