(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 ...).


Log in to reply