Attribut aus xml auslesen


tabina

Mitglied
Hallo,

ich habe folgendes Problem: ich lese für ein DataGridView die Bezeichner für die Spalten aus einer XML-Datei aus. Das funktioniert auch ganz wunderbar. Jetzt habe ich mir überlegt, dass ich noch weitere Informationen in Form von Attributen mitgeben möchte.
Ich benutze dafür die Funktion GetAttribute vom XmlReader, aber diese gibt mir immer null als Wert zurück. HasAttributes ist auch immer false.

Hier ein Auszug aus der xml-Datei:

Code:
<!-- The columns to appear in the DataGridView.-->
  <table>
    <numcolumns>14</numcolumns>
    <column>Name</column>
    <column>Value</column>
   <column>Domain</column>
    <column>Comment</column>
    <column>Read-Only</column>
    <column test="clb">Project</column>
  </table>

Mein code zum Lesen der xml Datei sieht so aus:
Code:
configReader = new XmlTextReader(mConfigName);
                while (configReader.Read())
                {
                    if (configReader.NodeType == XmlNodeType.Element)
                    {
                        if (configReader.Name.CompareTo("column") == 0)
                        {
                            COLUMNS[i] = configReader.ReadElementContentAsString();
                            String attr = configReader.GetAttribute("test");
                            i++;
                        }
                    }
                }

Was mache ich falsch?

Danke schon mal für jede Hilfe!

Gruss,
tabina
 

M4st3r

Erfahrenes Mitglied
Ich bin mir nicht sicher, kanns auch im moment nicht ausprobieren, aber bekommst du nicht während dem Read() irgendwann als XmlNodeType "System.Xml.XmlNodeType.Attribute"
 

Nico Graichen

Erfahrenes Mitglied
Hi

Definiere dir doch ein Xml-Schema, welches du dann per XmlSerializer serialisieren und Deserialisieren kannst.
Alternative:
Du schreibst dir eine Klasse, welche du per XmlSerializer zu Xml verarbeitest.

Der XmlReader ist in vielen Dingen sehr unflexibel und man hat mehr Aufwand herauszufinden, wo man sich grad im Xml befindet, als das man wirklich vorankommt.
 

Neue Beiträge