Ich habe eine Sammlung Zeichenfolge mit Informationen über Kunden wie Name, Geschlecht usw. Alle Kunden haben eine ID.Erstellen XML-Datei aus Sammelliste
Jetzt möchte ich eine gemeinsame XML-Datei mit allen Kunden darin erstellen. So etwas wie Beispiel unten:
<custumers>
<custumer>
<name></name>
<id></id>
<etc></etc>
</custumer>
</custumers>
Der Start ohne XML-Datei ist einfach, habe ich Linq die XML-Datei zu erstellen.
Für erstmalige Erstellung verwendete ich folgenden Code:
try
{
var xEle = new XElement("Customers",
from cus in cusList
select new XElement("Customer",
new XElement("Name", cus.Name),
new XElement("gender", cus.gender),
new XElement("etc", cus.etc));
}
xEle.Save(path);
Aber auf den Punkt, wenn ich die XML-Datei aktualisieren möchten, bekomme ich einige Probleme, es zu bekommen. Mein Ansatz, es zu lösen:
Iterate over all customers in list and check for all customers if the customer.id exists in the XML.
IF not: add new customer to xml
IF yes: update values
Mein Code so weit:
var xEle = XDocument.Load(xmlfile);
foreach (cus in cusList)
try
{
var cids = from cid in xEle.Descendants("ID")
where Int32.Parse(xid.Element("ID").Value) == cus.ID
select new XElement("customer", cus.name),
new XElement ("gender"), cus.gender),
new XELement ("etc."), cus.etc)
);
xEle.Save(xmlpath);
}
Sie möchten XML aktualisieren? Warum kannst du es nicht einfach umschreiben? – Prajwal
Wenn ich es neu schreiben möchte, muss ich alle Daten aus dem vorhandenen XML laden. Ich denke nicht, dass dies eine performante Lösung ist. Oder ich liege falsch? – swtch3k
Überprüfung jeder ID kostet mehr CPU-Zeit. wird nicht es? – Prajwal