using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; using System.Xml.Linq; using System.Xml.XPath; namespace Eugen.ESystem.Windows.Forms { internal class LoadXML { public string FileName { get; set; } public string Topic { get; set; } //z.B. "NX-Portal" public string Group { get; set; } //z.B. "NX 1953" public string[] Keys { get; set; } //z.B. "UGII_ENV" public string[] Values { get; set; } //z.B. "M:\ug\NX1953_NXTC\global\00_DEFAULTS\UGII\ugii_env.dat" public void Load() { // Das Dokument in eine neue XElement-Instanz laden XElement rootElement = XElement.Load(FileName); // Auflistung für die Gruppe erzeugen List groups = new List(); //Alle groups-Elemente einlesen und durchgehen //var personElements = rootElement.Elements(Group1); var groupElements = rootElement.Elements(); int i = 0; string[] temp = new string[5]; List lkeys = new List(); List lvalues = new List(); foreach (var groupElement in groupElements) { temp = groupElement.ToString().Split(' '); if (String.IsNullOrEmpty(Group)) { Group = ExtractGroup(temp); } lkeys.Add(ExtractKey(temp)); lvalues.Add(ExtractValue(temp)); i++; } string[] keys = new string[lkeys.Count]; string[] values = new string[lvalues.Count]; for (int j = 0; j < lkeys.Count; j++) { keys[j] = lkeys[j]; values[j] = lvalues[j]; } Keys = keys; Values = values; } private string ExtractGroup(string[] temp) { return temp[0].Remove(0, 1); } private string ExtractKey(string[] temp) { return temp[1].Remove(temp[1].IndexOf("=")); } private string ExtractValue(string[] temp) { return temp[1].Remove(0, temp[1].IndexOf("=") + 1).Replace("\"", ""); } } class Topics { public string Key; public string Value; } }