XML Dosyaları ve Loglama İşlemleri

Eyl 06, 2013
Bazı uygulamalarda veritabanı kullanmak yerine verileri bir dosyada tutma ve oradan okuma yöntemi tercih edilebilir. Bunun için XML (Extensible Markup Language - Genişletilebilir İşaretleme Dili) dosyaları çok kullanışlıdır, çünkü veriler etiketler içinde tutulur ve karışmaz. XML dosyasına veri yazmak ve okumak için gerekli tüm sınıflar System.Xml kütüphanesi içinde bulunur. 

Uygulama

Uygulamayı yapabilmek için öncelikle girilen verilerin kaydedilip okunabileceği bir XML dosyasına ihtiyaç vardır. Bu projede adı Veri olan XML dosyası C diski altına konulmuştur ve adresi C:\Veri.xml'dir.
  1.  Veri.xml dosyasının içeriği aşağıdaki gibi düzenlenir.

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
     <root>
     </root>

  2. Default.aspx sayfası aşağıdaki gibi düzenlenir

    <head runat="server">
       <title>XML Log Tutma</title>
    </head>
    <body>
       <form id="form1" runat="server">
       <div>
          <asp:Label ID="Label1" runat="server" Text="Ad">
             </asp:Label>
          <asp:TextBox ID="TextBox1" runat="server">
             </asp:TextBox>
          <asp:Label ID="Label2" runat="server" Text="Soyad">
             </asp:Label> 
          <asp:TextBox ID="TextBox2" runat="server">
             </asp:TextBox>
          <asp:Button ID="Button1" runat="server" 
             OnClick="Button1_Click" Style="height: 26px" 
             Text="Xml Dosyasına Yaz" Width="150px" />
          <asp:Button ID="Button2" runat="server" 
             Text="Xml Dosyasından Oku" onclick="Button2_Click1"/>
          <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
       </div>
       </form>
    </body>

  3. System.Xml kütüphanesi Default.aspx.cs'ye eklenir.
  4. Default.aspx.cs'nin içeriği de aşağıdaki gibi düzenlenir. Burada XmlDocument, XmlNode, XmlDocumentFragment, XmlTextReader sınıfları kullanılarak XML dosyasına veri yazılır ve XML dosyasındaki bilgiler okunur.

       protected void Page_Load(object sender, EventArgs e) 
       { } 
       protected void Button1_Click(object sender, EventArgs e) 
       { 
          XmlDocument document = new XmlDocument(); 
          document.Load("C:\\Veri.xml"); 
          XmlNode root = document.SelectSingleNode("/root"); 
          XmlDocumentFragment xdf = 
                document.CreateDocumentFragment(); 
          xdf.InnerXml = "<kisi>" + "" + "<ad>" 
          + TextBox1.Text.ToString() + "</ad>" + "" + 
          "<soyad>" + TextBox2.Text.ToString() + "</soyad>" 
          + "" + "</kisi>"; 
          root.InsertAfter(xdf, root.LastChild); 
          document.Save("C:\\Veri.xml "); 
          TextBox1.Text = TextBox2.Text = ""; 
       } 
       protected void Button2_Click1(object sender, EventArgs e) 
       { 
          XmlTextReader reader = 
                 new XmlTextReader("C:\\Veri.xml"); 
          while (reader.Read()) 
             { 
                 if (reader.NodeType == XmlNodeType.Element) 
                 { 
                    if (reader.Name.Equals("ad")) 
                       TextBox3.Text = TextBox3.Text + "ad:" +
                       reader.ReadString(); 
                    else if (reader.Name.Equals("soyad")) 
                       TextBox3.Text = TextBox3.Text + " "+
                       "soyad:" + reader.ReadString(); 
                 } 
             } 
          reader.Close(); 
       }

  5. Projenin görünümü aşağıdaki gibi olur: