Mittwoch, 30. Dezember 2009

Houston, wir haben eine XML!

So oder ähnlich könnte der Hilferuf eines Anfängers klingen der es erstmals mit einer XML zu tun hat. Das ganze ist aber recht einfach, zumindest wenn man eine Lösung hat: Zuerst brauchen wir natürlich eine gültige XML, Kenner sagen dazu eine "valide" XML.

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
 <Programm>

  <Ordner>
   <Alter>120</Alter>
   <Suchmuster native="Datum">*.*</Suchmuster>
   <Ort id="23">d:\temp</Ort>
  </Ordner>
  <Ordner>
   <Alter>120</Alter>
   <Suchmuster native="Datum">*.*</Suchmuster>
   <Ort id="12">d:\temp</Ort>
  </Ordner>

</Programm>
Und dann brauchen wir noch ein Programm mit dem wir die XML auslesen und die einzelnen Werte auf dem Schirm ausgeben.
try
{
//Lade die benannte XML-Datei aus dem Ordner 
//in dem sich aktuell unser Programm befindet
  XmlDocument doc = new XmlDocument();
  doc.Load(Environment.CurrentDirectory + "\\Steuerdatei.xml");

//Hole dir den Inhalt, samt Wurzel
  XmlElement XMLWurzel = doc.DocumentElement;

//Durchlaufe alle Knoten namens Ordner
  foreach (XmlNode Ordner in XMLWurzel.ChildNodes)
  {
  //Und gib die jeweiligen Inhalte aus
    Console.WriteLine (Convert.ToInt16(Ordner["Alter"].InnerText));
  //Hier den Inhalt eines Knoten
    Console.WriteLine (Ordner["Suchmuster"].InnerText);
  //Und hier den Inhalt eines Attributs eines Knoten
    Console.WriteLine (Ordner["Suchmuster"].Attributes["native"].InnerText);
};

}catch
{
  Console.WriteLine ("* Ups * Irgendwas klappt nicht!");
}
        
Natürlich müssen nicht alle Tags oder Attribute einer XML gelesen werden, man kann sich auf die Informationen beschränken, die man tatsächlich benötigt. Wie man sieht: Das Leben IST einfach - wenn man die Lösung kennt.

Die Variablen "leben" aufgrund Ihrer Deklaration innerhalb der While-Schleife auch nur innerhalb der While-Schleife - und das auch jeweils nur für einen Durchlauf. Solch eine Variable blickt neidisch auf jede Eintagsfliege. Im richtigen Leben sollte deshalb die Bearbeitung etwas dauerhafter erfolgen, aber es soll uns ja nur als einfaches Beispiel dienen.

Keine Kommentare:

Kommentar veröffentlichen