Hjælp ønskes til ændring og tilføjelse af data i eksisterende xml-fil
Hej med jerJeg er ny i C# og helt ny i XML-filer, så bær lige over med mig, hvis jeg hænger lidt i bremsen eller roder rundt i begreberne...
Jeg har via min C# kode fået dannet en xml-fil som ser sådan ud:
(måske der er en mere korrekt måde at stille det op, men jeg har valgt at holde det simpelt, for at kunne følge med rent forståelsesmæssigt)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!--Oprettet d. 21-05-2017 18:20:48-->
<medlemmer>
<medlem id="">
<id></id>
<fornavn></fornavn>
<efternavn></efternavn>
<køn></køn>
<alder></alder>
<adresse></adresse>
<postnr></postnr>
<by></by>
</medlem>
</medlemmer>
Det er tiltænkt som en skabelon og bevaret data for de medlemmer jeg opretter i programmet, så de stadig eksisterer 2. gang jeg kører programmet.
Jeg ønsker ved at kalde forskellige funktioner, at kunne tilføje, slette, filtrere de forskellige medlemmer.
Til at starte med overskrev jeg hele filen, når jeg forsøgte at tilføje et medlem, så filen bare blev blank.
Jeg har søgt en masse på nettet, men ender konstant med at forvirre mig selv i begreberne XmlDocument, XDocument, XElement, XmlNode, XmlWriter og XmlReader m.fl.
Først og fremmest har jeg brug for at filen bliver opdateret med de input jeg får ved oprettelsen af et nyt medlem i programmet.
Ved brugeroprettelsen dannes et array, hvorfra jeg tænker at trække id, navne osv. i form af strenge. Jeg har forsøgt mig med følgende kode:
foreach (var m in liste)
{
XmlDocument data = new XmlDocument();
data.Load(data.xml);
XElement nytmedlem =
new XElement("medlem", new XAttribute("id", m.id),
new XElement("id", m.id),
new XElement("fornavn", m.forNavn),
new XElement("efternavn", m.efterNavn),
new XElement("køn", m.køn),
new XElement("alder", m.alder),
new XElement("adresse", m.adresse),
new XElement("postnr", m.postnr),
new XElement("by", m.by));
nytmedlem.Add(data);
data.Save(xmlMedlemmer);
}
Selvom jeg et hav af gange er endt med at få datatypen frem i konsollen, har jeg nu haft held med læse fra en xml-fil. Dels via "innertext", så jeg fik noget reelt data ud af filen, og dels hele tabel-delen. Nu mangler jeg bare at finde den råde tråd i hvornår man bruger de forskellige funktioner...
Når det kommer til at danne en hel fil, går det fint for mig, problemet er dels når der skal søges i data'ene, og når jeg skal skrive data til filen.
Jeg kan ikke helt følge hvad de forskellige metoder giver mig at arbejde med. Fx :
XmlDocument data = new XmlDocument();
data.Load(fil.xml);
og
XElement data = XElement.Load(fil.xml);
Hvad har jeg fat i i ovenstående eksempler? - Er det hele filen eller fx. kun tabellerne jeg kan søge i og arbejde med ?
På mange forskellige sider står der beskrevet hvordan man tilføjer attributter og indhold til xml, men jeg har ikke haft held med at finde et eksempel, hvor hele sammenhængen mellem manipulationen og opdatering af selve filen, står beskrevet...
Nå, men jeg håber at høre fra jer, og at jeg ikke har skræmt jer helt væk med alle mine spørgsmål ;-)