Magnus1986 - Fr 24.04.09 12:21
Titel: XML mit ASP .NET C# auslesen
Hallo!
Ich bin neu in diesem Forum und werde in Zukunft wohl öfter hier sein, da ich vor wenigen Tagen mit ASP.NET/C# angefangen habe.
Für mich als PHP Programmierer ist es nicht ganz leicht, der Logic in C# zu folgen.
Momentan teste ich mein erworbenes Wissen an einem kleinen privaten Projekt, bei dem ich eine *.xml habe und diese Daten komfortabel einlese und (vorerst) einfach nur ausgeben möchte.
XML Datei:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| <?xml version="1.0"?> <filme> <film> <title>10.000 B.C.</title> <release>2008</release> <lines>1080p</lines> <language>Deutsch/Englisch</language> </film> <film> <title>28 Weeks Later</title> <release>2007</release> <lines>1080p</lines> <language>Deutsch</language> </film> ... </filme> |
C# Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| XmlReader xmlReader = XmlReader.Create(@"Import.xml"); xmlReader.MoveToContent();
int[] film = new int[3];
for (int i = 1; i < 4; i++) { xmlReader.ReadToFollowing("title"); string title = xmlReader.ReadElementContentAsString(); film[i] = title; } |
Ich möchte jeden Filmtitel, samt Erscheinungsjahr, Auflösung und Sprache einzeln in Variablen packen, damit ich später alles bequem in eine Datenbank legen kann. Nur leider komm ich einfach nicht auf den korrekten Weg.. Hat jemand einen Tipp? Schön wäre auch mal eine verständliche Doku, welche Funktionen bei XML möglich sind und was sie machen usw.
EDIT: Ich habe mal eine andere, weniger umständlichere Lösung getestet. Bisher find ich es auch einfacher allerdings beim Punkt film[i] = title; funktioniert es leider nicht. FM "Eine implizite Konvertierung vom Typ 'string' in 'int' ist nicht möglich".
Da Frag ich mich, wie ich dann die String Werte in das Array speichern kann.
Gruß Magnus
Robert.Wachtel - Fr 24.04.09 18:14
Zitat: |
[...] Da Frag ich mich, wie ich dann die String Werte in das Array speichern kann. [...] |
Ähm, in ein Integer-Array natürlich gar nicht. Nimm ein String-Array.
C#-Quelltext
1:
| string[] film = new string[3]; |
Oder - was wesentlich eleganter wäre, da Du ja eigentlich gar nicht vorher weißt, wieviele Elemente Du nun hast - benutze Generics:
C#-Quelltext
1: 2: 3: 4: 5:
| List<string> film = new List<string>();
[...]
film.Add(title); |
Und ganz genau genommen würdest Du idealerweise ein eigenes Objekt
film und das vielleicht noch mit Serialisierung/Deserialisierung garniert nutzen.