duovaluecontrol_user_contro.../DuoValueControl/LoadXML.cs_old
Eugen Höglinger 3781d720ec Initialized
- User Control zum Bearbeiten von Wertepaaren
- Daten können als XML Datei gespeichert werden
- Daten können von XML Datei gelesen werden
2022-10-25 12:04:53 +02:00

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;
}
}