XML Datei: Problem beim Lesen



  • Hallo,

    ich möchte gerne ein paar Daten aus folgender Datei auslesen:

    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <Teams>
    	<team0>blaq</team0>
    	<team1>blwa</team1>
    	<team2>blra</team2>
    	<team3>blae</team3> 
    	<team4>bla3</team4>
    	<team5>blau</team5>
    </Teams>
    

    Die teams würde ich jetzt gerne in der Reihenfolge in ein Array schreiben.
    Ich habs mal so probiert:

    counter = 0;
                XmlDocument doc = new XmlDocument();
                doc.Load(@"Teams.xml");
                XmlElement root = doc.DocumentElement;
                foreach (XmlNode @daten in root.ChildNodes)
                {
                    teamnames[counter]=@daten.Attributes["team0"].InnerText;
                }
    

    Das ist ein Beispiel aus dem Internet. Ich verstehe zum BEispiel die Bedingung der foreach Schleife nicht. Was macht die? Desweiter bricht das Programm beim Start mit "WindowsForm... hat ein Problem festgestellt und muss beendet werden." ab.

    Wie kann ich das machen?

    Gruß



  • NAchtrag:

    folgende Zeile:

    teamnames[counter]=@daten.Attributes["team0"].InnerText;
    

    muss eigentlich

    teamnames[counter]=@daten.Attributes["team"+counter].InnerText;
    

    heißen.
    Problem besteht weiterhin.



  • Kann sein, dass die Datei nicht gefunden wird. Benutze einen Debugger, dann weisst Du es.

    Ausserdem versuchst Du via Attributes auf die Attribute zuzugreifen. Es sind aber keine Attribute vorhanden im XML File. Nur Elemente.

    Hier ein lauffähiges Bsp. sofern die XML Datei gefunden wird.

    using System;
    using System.Xml;
    using System.Diagnostics;
    
    namespace Test
    {
        class Program
        {
            static void Main(string[] args)
            {
                XmlDocument doc = new XmlDocument();
                doc.Load("..\\..\\Teams.xml");
                XmlElement root = doc.DocumentElement;
                XmlNodeList children = root.ChildNodes;
                foreach (XmlNode daten in root.ChildNodes)
                {
                    string s = daten.InnerText;
                    Debug.WriteLine(s);
                }
            }
        }
    }
    

Anmelden zum Antworten