Laden...

XML-Datei in Array auslesen

Erstellt von ralfromer vor 5 Jahren Letzter Beitrag vor 5 Jahren 894 Views
R
ralfromer Themenstarter:in
1 Beiträge seit 2018
vor 5 Jahren
XML-Datei in Array auslesen

Hallo,

kann mir jemand helfen wie ich die Inhalte einer XML-Datei in ein Array schreiben kann?

Hier die XML-Datei

[FRAME]<?xml version="1.0" encoding="utf-8"?>
<Messwerte>  
<Messwert_13_9>13,8409</Messwert_13_9>
 <Messwert_14_9>14,8475</Messwert_14_9>  
<Messwert_15_9>15,8461</Messwert_15_9>  
<Messwert_13_9>13,8387</Messwert_13_9>  
<Messwert_14_9>14,8447</Messwert_14_9>  
<Messwert_15_9>15,8454</Messwert_15_9>  
<Messwert_13_9>13,8433</Messwert_13_9>  
<Messwert_14_9>14,8479</Messwert_14_9>  
<Messwert_15_9>15,8469</Messwert_15_9>  
<Messwert_13_9>13,8412</Messwert_13_9> 
 <Messwert_14_9>14,8446</Messwert_14_9>  
<Messwert_15_9>15,8477</Messwert_15_9> 
 <Messwert_13_9>13,8396</Messwert_13_9>  
<Messwert_14_9>14,8459</Messwert_14_9>  
<Messwert_15_9>15,8425</Messwert_15_9>  
<Messwert_13_9>13,8415</Messwert_13_9>  
<Messwert_14_9>14,8443</Messwert_14_9>  
<Messwert_15_9>15,8476</Messwert_15_9> 
 <Messwert_13_9>13,8391</Messwert_13_9>  
<Messwert_14_9>14,8428</Messwert_14_9>  
<Messwert_15_9>15,8419</Messwert_15_9>  
<Messwert_13_9>13,8408</Messwert_13_9>  
<Messwert_14_9>14,8474</Messwert_14_9>  
<Messwert_15_9>15,8457</Messwert_15_9>
</Messwerte>[/FRAME]

und hier mein Versuch, der leider nicht funktioniert

[FRAME]void Lesen()
        {
            if (File.Exists(xmlName)==false)
            {
                MessageBox.Show("Die Datei ist nicht vorhanden");
                return;
            }

            XmlReader xmlLesen = XmlReader.Create(xmlName);

            while (xmlLesen.ReadToFollowing("Messwerte"))
            {
                xmlLesen.ReadToFollowing("Messwert_13_9");
                Messwerte[m] = xmlLesen.ReadElementString();
                m++;
                xmlLesen.ReadToFollowing("Messwert_14_9");
                Messwerte[m] = xmlLesen.ReadElementString();
                m++;
                xmlLesen.ReadToFollowing("Messwert_15_9");
                Messwerte[m] = xmlLesen.ReadElementString();
                m++;
            }
            xmlLesen.Close();
        }[/FRAME]

Danke, schon mal im Voraus

16.835 Beiträge seit 2008
vor 5 Jahren

Schau Dir einfach XML Serialisierung an.
Das gehört zu den absoluten Grundlagen - und ist ein wirklich sehr sehr sehr gut dokumentiertes Kapitel.

Beispiele für die XML-Serialisierung

Leider ist Deine XML aber nicht wirklich in einem guten Format (Messpunkte mit eigenen Node-Bezeichnern, statt ordentliche Nummerierung über Attribute), sodass Du eine einfache XML (de)serialisierung so nicht hin bekommen wirst.

"Funktioniert nicht" ist aber leider keine hilfreiche Fehlermeldung, mit der hier irgendwer was anfangen kann.
[Hinweis] Wie poste ich richtig? Punkt 5

Mit XDocument und einer entsprechenden Iterierung über xDoc.Root.Elements kommst Du aber einfach ans Ziel.
Steht wie gesagt alles in der Doku.
Schaffst auch Du 😉