Autor Beitrag
Magnus1986
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Fr 24.04.09 12:21 
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:
ausblenden 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:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
//XML Datei wird eingelesen
XmlReader xmlReader = XmlReader.Create(@"Import.xml");
xmlReader.MoveToContent();

//Array wird gestartet
int[] film = new int[3];

//For-Schleife zum Durchnummerieren der einzelnen ausgelesenen Werte für das Array
for (int i = 1; i < 4; i++)
{
    xmlReader.ReadToFollowing("title");
    string title = xmlReader.ReadElementContentAsString();
    film[i] = title;
    //Ausgabe.Text += "Titel " + i + ": " + title + "<br>";
}


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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: 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.

ausblenden 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:

ausblenden 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.