Entwickler-Ecke

IO, XML und Registry - XmlReader Elementbezeichnung auslesen


yndaso - Mi 11.03.09 14:28
Titel: XmlReader Elementbezeichnung auslesen
Hallo,
habe gleich noch eine andere Frage zum Thema xml datei auslesen.

Hier mal eine xml Datei:

XML-Daten
1:
2:
3:
4:
5:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<install>
  <dll>file1.dll</dll>
  <xml>file1.xml</xml>
</install>


Ich habe mal den xml Reader wie er in MSDN beschrieben wird ein bisserl angepasst, das ganze schaut so aus:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
...
                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                        case XmlNodeType.Element:
                            break;
                        case XmlNodeType.Text:
                            Values[iZaehler] = reader.Value;
                            iZaehler++;
                            break;
                        case XmlNodeType.EndElement:
                            break;
                    }
                }


Wenn ich nun im Einzelschritt das ganze mal durchtakte, ist schön zu erkennen, dass immer wenn der NodeType.Text ist der Wert in das Array geschrieben wird.
Sprich das Array schaut bei der oben genannten xml Datei so aus:
Values[0]=file1.dll;
Values[1]=file1.xml;

Soweit so gut, Ich müsste jetzt aber wissen welches Element gerade ausgelesen wird, Das heißt ich bräuchte erst die Bezeichnung von xml element (z.b. dll oder xml) und dann der eigentliche Text.
Wie kommt man an den Elementnamen ran?
In meiner eigentlichen xml Datei gibts mehrere einträge und das Value Array soll mehrdimensional sein. In abhängigkeit vom Tag, soll dann das entsprechende Feld beschrieben werden...

Viel text, ich hoffe mir kann geholfen werden

Gruß


Moderiert von user profile iconKha: Topic aus WinForms verschoben am Mi 11.03.2009 um 18:13


Th69 - Mi 11.03.09 15:53

Gegenfrage: wofür ist wohl der 'case XmlNodeType.Element' gedacht?


yndaso - Mi 11.03.09 16:12

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Gegenfrage: wofür ist wohl der 'case XmlNodeType.Element' gedacht?


War ein Versuch meinerseits an den Text des Elements ranzukommen. Die case Anweisung habe ich noch drinnen gelassen, vielleicht verrät mir ja jemand wie man noch an den Text kommt...


Th69 - Mi 11.03.09 16:37

Und hast du dann auch den Wert ausgelesen?

C#-Quelltext
1:
2:
3:
4:
case XmlNodeType.Element:
{
   string name = reader.Name;
}


yndaso - Mi 11.03.09 16:42

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Und hast du dann auch den Wert ausgelesen?

C#-Quelltext
1:
2:
3:
4:
case XmlNodeType.Element:
{
   string name = reader.Name;
}


Danke!
Wusste nicht das mir .name GENAU das liefert was ich brauche.
Habs schon einbaut und funktioniert einwandfrei...

thx