- User Control zum Bearbeiten von Wertepaaren - Daten können als XML Datei gespeichert werden - Daten können von XML Datei gelesen werden
93 lines
3.0 KiB
Plaintext
93 lines
3.0 KiB
Plaintext
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"
|
|
public string Key { get; set; } //z.B. "Version"
|
|
public string[] Values { get; set; } //z.B. "NX 1953"
|
|
public string Standard { get; set; } //z.B. "yes"
|
|
|
|
public void Load()
|
|
{
|
|
// Das Dokument in eine neue XElement-Instanz laden
|
|
XElement rootElement = XElement.Load(@"C:\Temp\Test\Test.xml");
|
|
|
|
// Auflistung für die Gruppe erzeugen
|
|
List<Topics> groups = new List<Topics>();
|
|
|
|
//Alle groups-Elemente einlesen und durchgehen
|
|
//var personElements = rootElement.Elements(Group);
|
|
var groupElements = rootElement.Elements();
|
|
foreach (var groupElement in groupElements)
|
|
{
|
|
//Neue Gruppe erzeugen und in der Auflistung ablegen
|
|
Topics group = new Topics();
|
|
groups.Add(group);
|
|
|
|
//Das Attribut id einlesen
|
|
XAttribute idAttribute = groupElement.Attribute("Id");
|
|
if (idAttribute != null)
|
|
{
|
|
group.Id = idAttribute.Value;
|
|
}
|
|
|
|
//Key-Element suchen und speichern
|
|
XAttribute keyAttribut = groupElement.Attribute(Key);
|
|
if (keyAttribut != null)
|
|
{
|
|
group.Version = keyAttribut.Value;
|
|
}
|
|
|
|
//Standard-Element suchen und speichern
|
|
XAttribute standardAttribut = groupElement.Attribute("Standard");
|
|
if (standardAttribut != null)
|
|
{
|
|
group.Standard = standardAttribut.Value;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void LoadData()
|
|
{
|
|
//XElement zum Lesen erzeugen
|
|
XElement personsXML = XElement.Load(FileName);
|
|
//XDocument personsXML = XDocument.Load(FileName);
|
|
|
|
//Alle Aliens abfragen
|
|
var persons =
|
|
from person in personsXML.Descendants("person")
|
|
where person.Element("type").Value == "Alien"
|
|
select new
|
|
{
|
|
Id = (int)person.Attribute("id"),
|
|
FirstName = person.Element("firstname").Value,
|
|
LastName = person.Element("lastname").Value
|
|
};
|
|
|
|
//Die abgefragten Personen durchgehen und derern Daten ausgeben
|
|
foreach (var person in persons)
|
|
{
|
|
//TODO:
|
|
}
|
|
}
|
|
}
|
|
|
|
class Topics
|
|
{
|
|
public string Id;
|
|
public string Version;
|
|
public string Standard;
|
|
}
|
|
}
|