C# - XML állomány olvasása, értelmezése

forráskód letöltése
Ha adott egy XML állomány, akkor ennek tartalmát programból ki kell tudnunk olvasni és a benne lévő adatokat értelmeznünk kell annak felhasználása érdekében. E cikkben egy olyan osztállyal ismerkedünk meg, mely nagy mértékben megkönnyíti az ilyen jellegű feladatok végrehajtását.
Ez az osztály az XmlTextReader lesz. Létrehozásakor a konstruktorában kell megadnunk a kezelendő XML állományt. Ezt követően egy ciklussal végigmehetünk az összes csomópontján egyesével. A soron következő csomópont adatait a Read függvény olvassa ki, mely egyúttal tájékoztat is arról, hogy van-e még olvasandó csomópont, vagy már végeztünk az XML állománnyal.
    private void button1_Click(object sender, System.EventArgs e)
    {
      XmlTextReader xtr = new XmlTextReader(Application.StartupPath+"\\test.xml");
      while (xtr.Read())
      {
A Read után a NodeType property vizsgálatával dönthetjük el, hogy a kiolvasott csomópont milyen típusú adatokat tartalmaz. Ezek lehetséges értékei az XmlNodeType felsorolt típus elemei közül kerülhetnek ki, így pontosan tudhatjuk, hogy éppen szöveget találtunk vagy megjegyzést, vagy egyéb XML elemet.
        switch (xtr.NodeType)
        {
          ...
          case XmlNodeType.Text:
            listBox1.Items.Add(xtr.LineNumber.ToString() + ". " + Space(xtr.LinePosition) + xtr.Value);
            break;
          ...
        }
      }
    }
A XmlTextReader osztály LineNumber property-je tájékoztat bennünket, hogy az XML állomány hányadik soránál tartunk, míg a LinePosition property-ből azt tudhatjuk meg, hogy az adott sort hány karakterrel kell behúznunk ahhoz, hogy az elrendezés az XML csomópontoknak megfelelő mértékű legyen.
Hogy egy csomópontnak hány attribútuma van, azt az AttributeCount property árulja el, míg az egyes attribútumokat a GetAttribute függvény olvassa ki úgy, hogy paraméterként a kérdéses attribútum sorszámát kell megadni.