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.