Laden...

XML schreiben / lesen - Grundlagen

Erstellt von Gregor vor 18 Jahren Letzter Beitrag vor 18 Jahren 3.502 Views
G
Gregor Themenstarter:in
68 Beiträge seit 2005
vor 18 Jahren
XML schreiben / lesen - Grundlagen

Hallo,

Vorweg, im Gebiet XML bin ich ein grosser Anfänger (Noob / Dau). Wie eine XML aufgebaut ist weiss ich schon und ich kenne auch die W3C Spetzifikation, aber wie ich praktisch XML Dateien in C# auslese und schreibe ist mir immernoch ein Rätsel.

Wenn ich hier im Forum suche oder auch in Google und auf MSDN bekomme ich haufen Klassen die zwar irgendwie alle das Gleiche machen aber doch total verschieden sind.
Ehrlich gesagt, nach vier Tagen Reserche gehts mir so langsam auf den Sack 😦...

Darum wollte ich mal nachfragen ob mir jemand irgendwie nen schlauen Link zu ner Übersicht der einzelnen .NET Klassen geben kann, bei welchem ich auch die Vor- und Nachteile sehe bzw. Links zu Tutorials wo mir XML einlesen und schreiben im Praktischen Einsatz gezeigt wird.

Meine Idee ist es die einzelnen Einstellungen eines Projektes, an dem ich dran bin, im XML Format zu speichern. Besonders im Hinblick auf das vermehrte verwenden von XML würde es nicht schaden sich mit der Thematik zu befassen.

Also, vielleicht hat ja jemand Zeit und Lust mich in die Welt von XML etwas einzuführen, würde mich freuen.

Mit freundlichen Grüssen,
Gregor Wegberg

p.s.: Wenn was gutes hier rauskommt, könnte man es ja Rhuig in die FAQ legen... Würde sicher nicht schaden

S
8.746 Beiträge seit 2005
vor 18 Jahren

Zwei Einstiegspunkte:

  1. Klasse XmlTextReader

Mit dieser Klasse kannst du ein Xml-File zeilenweise (!) auslesen. Vorteile: Einfach, schnell. Nachteil: Wenig mächtig, da nur zeilenbasiert. Read-Only.

  1. Klasse XmlDocument

Diese Klasse liest das File in einem Rutsch in ein Objekt. Das Objekt entspricht einem Baum. Du kannst dieses Objekt auslesen und auch verändern, also neue Knoten hinzufügen oder vorhandene löschen. Das Objekt kann dann auch wieder in einem Rutsch gespeichert werden. Nachteile treten bei der Verwendung von großen Xml-Dokumenten auf (hoher Speicherplatzbedarf). Auch bei XPath-Zugriffen ist es ggf. zu schwergewichtig (dazur gibts dann XPathDocument).

In der Hilfe - und auch im Netz - findest du Beispiele.

G
Gregor Themenstarter:in
68 Beiträge seit 2005
vor 18 Jahren

Danke für die super Antwort (noch dazu schön Kurz und klar 😄)...

Würde dann halt mal lieber was mit XMLDocument machen... mal schaun ob ich nen gutes Tutorial finde... noch siehts nicht rosig aus, aber wird sicher...

Danke nochma,
Gruss,
Gregor

C
17 Beiträge seit 2006
vor 18 Jahren

Hallo Gregor

Microsoft bietet eine Webcast-Serie zum Thema XML an. Vielleicht könnte das für dich interessant sein. Du musst dich aber anmelden.

Gruss
Hitsch

There's never enough time to do all the nothing you want. (Calvin and Hobbes)

170 Beiträge seit 2005
vor 18 Jahren

Apropos XPath: Gibt es eigentlich auch eine Möglichkeit ein XPath-Query relativ
zu einem Node auszuführen? Es geht mir um folgendes: Ich habe eine Node-
Struktur, die einen Verzeichnisbaum darstellt und beliebig verschachtelt werden
kann. Ich gehe jetzt rekursiv durch die Nodes und führe jetzt jeweils das gleiche
Query ergänzt um ein "/folder" aus. Also sieht das Query nach einigen Ver-
schachtelungen so aus:

"//bookmarks/folder/folder/folder/[...]/folder[...]"

Das finde ich etwas unsauber, vor allem, da ich das Query per String übergeben
muss. Super wäre es jetzt halt, wenn ich das Query relativ zu einem Node
ausführen müsste, so dass jeweils das gleiche Query ausgeführt werden könnte
nur halt von einem neuen Node ausgehend.

Und bevor ihr vorschlagt, die Rekursion einfach durch das Query auszuführen via
"/folder[...]": Es ist für die Weiterverarbeitung für mich wesentlich praktischer
jede Ebene explizit auslesen zu können und nicht alles auf einen Schlag erledigen
zu müssen.

Danke schon mal 🙂

inTrance

G
Gregor Themenstarter:in
68 Beiträge seit 2005
vor 18 Jahren

Original von chritsch
Hallo Gregor

Microsoft bietet eine Webcast-Serie zum Thema
>
an. Vielleicht könnte das für dich interessant sein. Du musst dich aber anmelden.

Gruss
Hitsch

Die kenne ich alle schon 🙂 Aber von den 8 Webcasts (ich glaubs es waren 8), habe ich keine gesehen in der es um die Praxis geht (Habe nur die ersten 3 angeschaut und die Beschreibung der anderen)... Wenn Du weisst in welchem gezeigt wird wie man XML Files mit XMLDocument auswerten kan... hätt ich nichts gegen 😁

Gruss,
Gregor Wegberg

_
416 Beiträge seit 2005
vor 18 Jahren

@inTrance:

du kannst auf jedem beliebigen XmlNode SelectNodes ausführen. Also auch auf einer beliebigen Ebene.

XmlNode folderEbene1 = BookmarkDokument.SelectSingleNode("Bookmarks/Folder");
XmlNode folderEbene2 = folderEbene1.SelectSingleNode("Folder");
//usw.

P.S. ein neuer Thread wäre vl. übersichtlicher gewesen 😉

170 Beiträge seit 2005
vor 18 Jahren

Original von tb
@inTrance:

du kannst auf jedem beliebigen XmlNode SelectNodes ausführen. Also auch auf einer beliebigen Ebene.

XmlNode folderEbene1 = BookmarkDokument.SelectSingleNode("Bookmarks/Folder");  
XmlNode folderEbene2 = folderEbene1.SelectSingleNode("Folder");  
//usw.  

Hm... Und ich dachte das hätte bei mir nicht funktioniert. Werd ich nochmal
ausprobieren 🙂

P.S. ein neuer Thread wäre vl. übersichtlicher gewesen 😉

Ich war auch stark am Hadern, ob ich nicht doch einen eigenen hätte erstellen
sollen 😁