Hallo,
ich empfehle dir das Dokument mittels LINQ to XML auszulesen. Damit kannst du einfach eine Liste aller Points erzeugen lassen:
var file = @"D:\Test\XMLFile1.xml";
var points = XDocument.Load(file)//Datei laden
.Root //Root-Knoten "Datas" öffnen
.Element("TimingPoints")//TimingPoint finden, beachte dass das Erste genommen wird
.Elements()//Innere Elemente auslesen
.Select(x => x.Value);//Jeweils den Wert des Point* auslesen
foreach (var point in points)//Alle Punkte durch gehen
Console.WriteLine(point);
Dasbei gehe ich davon aus, das Datas der Root-Knoten des Dokuments ist. Weiterhin soll immer der erste Knoten "TimingPoints" ausgelesen werden. Die Liste enthält die Punkte dann in der Reihenfolge, wie sie im Dokument enthalten sind.
Wenn du das Select-Statement leicht abänderst, kannst du zu jedem Punkt noch den Namen des Knotens erhalten:
.Select(x => new KeyValuePair<string, string>(x.Name.ToString(), x.Value));
Von jedem "point" ist dann die Key-Eigenschaft der Tagname und die Value-Eigenschaft der enthaltene Wert.
LINQ to XML erzeugt immer ein IEnumerable<T> als Ergebnis. Mittels den Erweiterungsmethoden
ToArray und ToList kannst du dir auch ein Array oder eine List<T> erzeugen lassen.
Siehe auch:
LINQ to XML
Tom Lambert - C# MVP
Wozu
Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode |
C# ↔ VB.NET Konverter |
Account bestätigen (Verify Your Account)
Ich: Webseite |
Code Beispiele | Facebook |
Twitter | Snippets