C# - XML állomány létrehozása és olvasása

XML 4. rész

forráskód letöltése
XML cikksorozatunk elméleti áttekintése után most nézzük mi a gyakorlat: első XML alkalmazásunkban létrehozunk egy XML állományt, majd olvasunk is belőle információt.
XML dokumentumok kezeléséhez az XMLDocument osztály lesz segítségünkre.
    private void button1_Click(object sender, System.EventArgs e)
    {
      XmlDocument xd = new XmlDocument();
Egy XML dokumentumot akár a rendelkezésre álló sztring alapján is létrehozhatunk, betölthetünk egy XMLDocument osztályba a LoadXml függvénnyel.
      xd.LoadXml(
        "<book ISBN=\"963 00 5169 9\">" +
        "   <title>Delphi Software Offline 2000</title>" +
        "   <internet>" +
        "      <web>http://www.SoftwareOnline.hu</web>" +
        "      <email>info@animare.hu</email>" +
        "   </internet>" +
        "</book>"
        );         
Ha adott az XML dokumentum, akkor azt állományba menteni a Save függvénnyel tudjuk, melynek több változata is létezik. Így például megadhatunk egy sztringet paraméterként, melyben a létrehozandó állomány nevét, elérési útvonalát adjuk meg. Használhatunk egy XmlTextWriter osztályt is az állomány kezeléséhez. Ekkor az állomány nevet és annak kódolását az XmlTextWriter osztályt létrehozó konstruktorban adhatjuk meg, majd az XMLDocument Save függvényének az XmlTextWriter osztály példányát kell átadnunk.
      XmlTextWriter tw = new XmlTextWriter(Application.StartupPath + "\\First.xml", Encoding.Unicode);
      xd.Save(tw);    
      tw.Close();
      button2.Enabled = true;
    }
Ezen kívül a Save még elfogad Stream osztályt és XmlWriter osztályt is paraméterként.
Mentés ellentéte a betöltés, így a Save-hez tartozik egy Load függvény is, mely szintén négy változattal rendelkezik az előbbi paraméterezéshez hasonlóan: Stream, String, TextReader, XmlTextReader.
Ha már adott az imént létrehozott állomány, akkor töltsük is be és nézzük, miként kereshetünk benne elemeket.
    private void button2_Click(object sender, System.EventArgs e)
    {
      XmlDocument xd = new XmlDocument();
      xd.Load(Application.StartupPath + "\\First.xml");    
Adott egy DocumentElement-nek nevezett property, melyen keresztül egy XmlElement osztályt érhetünk el. A dokumentumunk általunk megadott elemei például hozzáférhetőek egy tömbön keresztül, melyet a ChildNodes property szolgáltat. Az XmlElemnt osztály Name property-je adja vissza az adott csomópont nevét, míg az InnerText-ből megtudhatjuk annak értékét, vagy a csomópont belső szövegét.
      foreach (XmlNode n in xd.DocumentElement["internet"].ChildNodes)
      {
        listBox1.Items.Add(n.Name + ": " + n.InnerText);
      }
    }

XML felhasználása C#-ban cikksorozat