(Mit OpenFile Dialog) eine XML Datei einlesen
-
Hallo zusammen
Ich möchte eine XML Datei über den OpenFile Dialog einlesen und in einer Listbox mir die Namen meiner TV Senderliste ausgeben lassen.
Mein Problem:
Ich möchte mir den Inhalt des <name> Tag aus meiner XML Datei in meiner Listbox anzeigen lassen.
Hat da Jemand eine Idee?Die XML Datei heißt channels.xml und ist wie folgt aufgebaut:
<channels> <channel> <broadcast>None</broadcast> <diseqc>1</diseqc> <name>Sky Comedy</name> <polarisation>0</polarisation> <modulation>None</modulation> <selected>0</selected> <sys>5</sys> <scrambled>1</scrambled> <serviceid>8</serviceid> <frequency>11798</frequency> <provider>SKY</provider> <symbolrate>27500</symbolrate> <position>-1</position> </channel> ..... </channels>
Ich habe es soweit geschafft das er mir die komplette XML Datei ausgibt.
Hier der Code:OpenFileDialog openFileDialog1 = new OpenFileDialog(); if (openFileDialog1.ShowDialog() == DialogResult.OK) { StreamReader reader = new System.IO.StreamReader(openFileDialog1.FileName); while (!reader.EndOfStream) listBox1.Items.Add(reader.ReadLine()); reader.Close(); } this.btnMainTest.Click += new System.EventHandler(this.btnMainTest_Click);
Gruß
-
Auf myCSharp.de wurde dir doch schon der Hinweis gegeben, die Klasse XmlDocument dafür zu benutzen...
-
Hallo,
nimm XmlReader.
Hier etwas Code (aus dem Kopf)XmlReader reader = XmlReader.Create(f.FileName); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: // reader.name entspricht dem Namen des Tags break; case XmlNodeType.Text: // reader.value entspricht dem Inhalt des Tags break; case XmlNodeType.EndElement: break; } } reader.Close();
Grüße
-
Such mal nach XPath und probier das ganze darueber.
-
LOL: 3 Antworten - 3 verschiedene Klassen
Mir war nur wichtig, daß der OT nicht direkt mittels des StreamReaders zeichen- bzw. zeilenbasiert die XMl-Datei einliest, sondern eine für XML spezialisierte Klasse benutzt (ob nun XmlDocument, XmlReader oder XPath oder ...).