Moin,
kann mir mal jemand erklären wie man mit C# XML Dateien editiert?
Ich erwarte jetzt kein Tutorial, mir würde es reichen wenn man mir die Grundlagen erklären würde.
Ich bedanke mich schonmal im vorraus.
unter editiert verstehst du komplett neu schreiben oder auslesen oder wirklich werte aendern? Also erklaer mal grob, was du machen moechtest, dann kann ich dir auch besser sagen, wie das geht 🙂
oh...
Am wichtigsten wäre mir neu schreiben, auslesen und verändern 😄.
Wie gesagt: es würde reichen wenn man mir die befehle grob erklärt.
Danke
Hier ein kurzes Beipiel aus meinem XML-Testproggie (in der Vareable file steht der Pfad der XML):
private void buttonRead_Click(object sender, EventArgs e)
{
DataSet test = new DataSet();
test.ReadXml(file);
this.labelText.Text = (string) test.Tables["Element"].Rows[0]["Text"];
}
private void buttonWrite_Click(object sender, EventArgs e)
{
DataSet test = new DataSet();
test.ReadXml(file);
test.Tables["Element"].Rows[0]["Text"] = "Überschrieben";
this.labelText.Text = (string)test.Tables["Element"].Rows[0]["Text"];
test.WriteXml(file);
}
private void buttonNew_Click(object sender, EventArgs e)
{
DataSet test = new DataSet();
test.ReadXml(file);
DataRow row = test.Tables["Element"].NewRow();
row["Text"] = "Neues Element";
test.Tables["Element"].Rows.Add(row);
test.WriteXml(file);
labelText.Text = (string)test.Tables["Element"].Rows[2]["Text"];
}
Die dazupassende XML hat folgenden aufbau:
<?xml version="1.0" standalone="yes"?>
<test>
<Element>
<Text>Text</Text>
</Element>
</test>
danke für deine antwort!
ich hab da noch eine frage:
is der pfad zur xml datei (Variable file) relativ zum programm?
und:
Kann ich da auch z.B. file://laufwerk/ordner/ordner/datei.xml benutzen?
das kannst du machen wie du lustig bist. gibts du aber einen raltiven Pfad an, geht er vom AKTUELLEN Verzeichnis, nicht vom Programmverzeichnis aus.
Hallo Leute,
XML-Dateien ändert man mit den Klassen im Namespace System.XML, da gibt es einiges ... z.B. XmlTextReader zum Lesen der Dateien, XmlTextWriter zum Schreiben, XmlDocument um die Nodes direkt zu ändern ...
Das DataSet zu verwenden ist die denkbbar ungünstigste Alternative ... damit baue ich immer eine Datenbank im Speicher auf, und das nur um XML zu ändern?
Die Klassen in System.Xml sind für die Zusammenarbeit mit dem XML-Format gemacht und bieten alle Möglichkeiten ... da die Struktur allerdings hierarchisch ist, musst du dich beim Bearbeiten z.B. mit XmlDocument zum Teil etwas einarbeiten ... 🙂.
Viele Grüße,
Frank
http://www.frankeller.de
Der Anwender steht immer im Mittelpunkt - und da steht er jedem im Weg.
wie würdest du es denn machen?
Original von shady
wie würdest du es denn machen?
Hat er doch geschrieben.
XML-Dateien ändert man mit den Klassen im Namespace System.XML, da gibt es einiges ... z.B. XmlTextReader zum Lesen der Dateien, XmlTextWriter zum Schreiben, XmlDocument um die Nodes direkt zu ändern ...
meinte die Variable test die FrenkE als DataSet benutzt hat. Ich wollte wissen was man da besser nehmen könnte.
Hallo shady,
die Variable test gäbe es dann eben nicht mehr.
Besser und schlechter sind beim Entwickeln meist sowieso relative Begriffe. Wenn Du XmlTextReader verwenden würdest, würde m.E. der Code wesentlich länger, weil du eben nicht die Leitungsfähigkeit der "Datenbank im Speicher" nutzen kannst.
Anfangen müsstest wohl mit einer Schleife um die Read-Methode der Klasse XmlTextReader. Mit den anderen Methoden kannst du dann auf die Informationen des jeweils gelesenen Knoten zugreifen.
HTH
herbivore