[C#] XML-Datei parsen

Diskutiere [C#] XML-Datei parsen im .NET Technology Forum; Guten Tag, ich möchte eine XML-Datei effizient und mit wenig Codezeilen parsen. Dabei sollen die Attribute der Elemente in verschiedene Listen...

  1. haui95
    haui95 Neues Mitglied
    Guten Tag,

    ich möchte eine XML-Datei effizient und mit wenig Codezeilen parsen. Dabei sollen die Attribute der Elemente in verschiedene Listen gespeichert werden. Diese Listen dienen als Parameter des Konstruktors der Klasse Spur. Am Ende jedes Elementes "spur" der XML-Datei soll die neu erstellte Spur zu einer Liste "spuren" hinzugefügt werden.

    [XML]
    <?xml version="1.0" encoding="UTF-8"?>
    <punkte>
    <spur>
    <punkt x="976.0" y="384.0"/>
    <punkt x="375.0" y="389.0"/>
    <punkt x="185.0" y="394.0"/>
    <punkt x="-20.0" y="399.0"/>
    <ampel id="1" pos="292" phase="6"/>
    </spur>
    <spur>
    <punkt x="976.0" y="325.0"/>
    <punkt x="575.0" y="300.0"/>
    <punkt x="535.0" y="-20.0"/>
    <ampel id="2" pos="292" phase="6"/>
    </spur>
    <spur>
    <punkt x="-20.0" y="536.0"/>
    <punkt x="250.0" y="531.0"/>
    <punkt x="500.0" y="531.0"/>
    <punkt x="976.0" y="520.0"/>
    <ampel id="3" pos="225" phase="6"/>
    </spur>
    <spur>
    <punkt x="-20.0" y="480.0"/>
    <punkt x="425.0" y="415.0"/>
    <punkt x="477.0" y="-20.0"/>
    <ampel id="4" pos="225" phase="6"/>
    </spur>
    <spur>
    <punkt x="400.0" y="-20.0"/>
    <punkt x="470.0" y="430.0"/>
    <punkt x="976.0" y="460.0"/>
    <ampel id="5" pos="218" phase="6"/>
    </spur>
    <spur>
    <punkt x="340.0" y="-20.0"/>
    <punkt x="310.0" y="300.0"/>
    <punkt x="-20.0" y="343.0"/>
    <ampel id="6" pos="218" phase="6"/>
    </spur>
    </punkte>
    [/XML]

    Bisher habe ich folgenden Code:

    Code (Java):

    XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml);
                doc.Normalize();

                var elements = doc.GetElementsByTagName("spur");
                foreach (XmlElement spur in elements)
                {
                    List<float> xList = new List<float>();
                    List<float> yList = new List<float>();
                    List<int> id = new List<int>();
                    List<int> pos = new List<int>();

                    var points = spur.GetElementsByTagName("punkt");
                    var lights = spur.GetElementsByTagName("ampel");

                    foreach (XmlElement p in points)
                    {
                        xList.Add(float.Parse(p.GetAttribute("x")));
                        yList.Add(float.Parse(p.GetAttribute("y")));
                    }

                    foreach (XmlElement l in lights)
                    {
                        pos.Add(int.Parse(l.GetAttribute("pos")));
                        id.Add(int.Parse(l.GetAttribute("id")));
                    }

                    spuren.Add(new Spur(xList, yList, id, pos));
                }
     
    Gibt es eine Möglichkeit, das Auslesen der XML-Datei zu optimieren. Mit Linq bin ich auch nicht weiter gekommen. Obwohl der Code funktioniert, gefällt er mir jedoch nicht.

    Vielen Dank

    Hauke :)
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
Die Seite wird geladen...

[C#] XML-Datei parsen - Ähnliche Themen

[C#] Rechnung ergibt immer 0
[C#] Rechnung ergibt immer 0 im Forum .NET Technology
[C#] PNG Bilder verzerrt
[C#] PNG Bilder verzerrt im Forum Softwareentwicklung
Bestimmte Werte eine XML-Datei ausgeben.
Bestimmte Werte eine XML-Datei ausgeben. im Forum Java Basics - Anfänger-Themen
XML-Datei in Resources per XmlReader lesen
XML-Datei in Resources per XmlReader lesen im Forum C/C++
XML-Datei per Button erstellen
XML-Datei per Button erstellen im Forum XML und Co.
Thema: [C#] XML-Datei parsen