C# Klassen aus XML erstellen

Murphy9904

Lt. Junior Grade
Registriert
Mai 2007
Beiträge
344
Hey,
ich hab eine XML Datei.. mit seehr vielen "Objekten"

daraus möchte ich Klassen erstellen. Das könnt ich jetzt theoretisch per Hand machen aber das würde zulange dauern.


Gibts da irgend ne Möglichkeit das Programmatisch zu machen?

Danke schonmal

Murphy
 
Hi,

du hast mehrere Klassen in einer XML? Oder eine XML pro Klasse?

PHP:
using System.IO;
using System.Xml.Serialization;

private Kunde KundeEinlesen()
{
    XmlSerializer ser = new XmlSerializer(typeof(Kunde));
    StreamReader sr = new StreamReader(@"c:\Kunde1.xml");
    Kunde Kunde1 = (Kunde)ser.Deserialize(sr);
    sr.Close();
    return Kunde1;
}

private void KundeAnlegenUndSpeichern(string newVorname, string newNachname)
{
    Kunde Kunde1 = new Kunde(newVorname, newNachname);
    
    XmlSerializer ser = new XmlSerializer(typeof(Kunde));
    FileStream str = new FileStream(@"c:\Kunde1.xml", FileMode.Create);
    ser.Serialize(str, Kunde1);
    str.Close();
}

Quelle: DotNet Snippets

Das ist dir bekannt?

VG,
Mad
 
es ist eine XML mit mehreren klassen
und ich will nicht die daten auslesen sondern die Klassen erstellen :)
 
Hi,

ok, dann hatte ich es falsch verstanden.

Wie genau stellst du dir das Klassenauslesen vor bzw wie machst du es momentan? Wie sieht die Datei denn aus? Kannst du mal ein wenig posten?

VG,
Mad
 
Momentan mache ich nicht nichts,
ich hätte jetzt vorgehabt mir n kleines tool zu schreiben was mir einfach die .cs dateien mit dem Code für die Klassen ausspuckt

aber das is auch nich das tollste :D
 
Hi,

wie gesagt, poste mal ein wenig aus der XML-Datei. Ich kann mir das gerade nicht vorstellen was du da machst. Ich hätte es halt im Ansatz schon komplett anders gemacht, daher die Frage.

VG,
Mad
 
Eine Möglichkeit ist aus der XML-Datei ein XSD zu erzeugen und aus diesem deine Klassen generieren lassen! (du kannst praktisch alles generieren lassen, wenn du xsd von MS verwendest).

Hoffe ich konnte helfen. Wenn du mehr Infos brauchst einfach bescheidgeben, sollte jetzt wieder weiterarbeiten, Mittagspausen sind zu kurz ;)
Ergänzung ()

Ach noch was, je nach dem wie deine XML - Datei aussieht, dh. sind attribute für die Typen definiert oder nicht! Wird auch dein Ergebnis aussehen!

Dh. wenn im XML keine Typen, Namespaces etc. angegeben sind für die einzelnen Elemente, wirst du im schlechtesten Fall, nur string Properties in deiner generierten Klasse haben!
 
danke awez!
Das klingt sehr gut
werde mich da mal bissel drüber schlau machen :)
 
Hi,

ok, dann bin ich mal raus. Ohne einen Einblick, wie deine XML aufgebaut ist kann man dir unmöglich sinnvoll weiterhelfen.

VG,
Mad
 
Madman1209 schrieb:
Hi,

ok, dann bin ich mal raus. Ohne einen Einblick, wie deine XML aufgebaut ist kann man dir unmöglich sinnvoll weiterhelfen.

VG,
Mad

Nö eigentlich nicht. Seine Aussagen waren ausreichend um ihm zu helfen. Siehe awez.
Das war genau das was er suchte.
 
Ja genau toeffi :)

Jetzt hab ich nur meine Klassen alle in einer Datei, wie bekomme ich jetzt für jede klasse ne eigene Datei?
 
Hi,

nein, eigentlich nicht. Was erhofft er sich daraus? Eine automatisierte Klassenerstellung mittels XML / XSD-Tool bringt ihm nur dann etwas, wenn er auch eine valide XML hat. Darüber hätte er sich vor der Erstellung schon Gedanken machen sollen. Ergo hätte er sich schon damit auseinander gesetzt und XSD wäre ihm wahrscheinlich schonmal über den Weg gelaufen.

Daher wollte ich einfach wissen, wie sein XML gebaut ist, evtl benötigt er ja einen anderen Ansatz. Aber gut, was kenn ich mich aus, bin ja nur .NET-Entwickler.

Jetzt hab ich nur meine Klassen alle in einer Datei, wie bekomme ich jetzt für jede klasse ne eigene Datei?

Merkst du was? Genau deswegen wollte ich das ja wissen. Aber egal, ihr kriegt das schon.

VG,
Mad
 
Madman1209 schrieb:
Hi,

nein, eigentlich nicht. Was erhofft er sich daraus? Eine automatisierte Klassenerstellung mittels XML / XSD-Tool bringt ihm nur dann etwas, wenn er auch eine valide XML hat. Darüber hätte er sich vor der Erstellung schon Gedanken machen sollen. Ergo hätte er sich schon damit auseinander gesetzt und XSD wäre ihm wahrscheinlich schonmal über den Weg gelaufen.

Daher wollte ich einfach wissen, wie sein XML gebaut ist, evtl benötigt er ja einen anderen Ansatz. Aber gut, was kenn ich mich aus, bin ja nur .NET-Entwickler.



Merkst du was? Genau deswegen wollte ich das ja wissen. Aber egal, ihr kriegt das schon.

VG,
Mad

Nein du bringst hier was durcheiander. Die Antwort auf seine Frage die hat er bekommen, mit folge Problemen hätten man genauso rechnen müssen wenn wir die XML gesehen hätten ;)
 
Macht bitte ein neues Thema auf und nennt es "streit Der .Net Giganten ;)

das weicht grad bissel vom Thema ab
 
So dann noch mal ein kurzes Kommentar :)

@Madman : wie soll ich sagen, ich stimme dir in jeder deiner Aussagen zu.
produktiv gedacht gibt es keine sinnvolle antwort ohne das XML zu kennen!
Ziele dh. wo willst du hin was willst du mit den klassen und reicht dein XML aus müssen bekannt sein um sinnvoll zu argumentieren.


Also im großen und ganzen beginnt, wie Madman schon gesagt hat, alles bei der Erstellung des XMLs bzw. von wo du das auch immer bekommst! Wenn das nicht valid ist, zu wenig Infos enthält um sinnvoll daten aufzubereiten, dh wenn dir aus dem oben beschriebenen generierungsansatz ohnehin nicht das gewünschte Ergebnis liefert könnte man sich hier einiges an Arbeit ersparen, da man früher oder später wo anders ansetzen muss.


Recht haben hier alle irgendwie, aber wie ich schon beschrieben habe würde man sich ev. viel Arbeit ersparen wenn man das XML kennen würde.
 
Zurück
Oben