‘asp.net’ kategorisi için Arşiv

ASP.net ile XML Dosyası Oluşturma

Salı, 18 Ağustos 2009

.Net Framework bünyesinde bize sunulan XMLTextWriter sınıfını kullanarak XML dokuman oluşturmak konusunu anlatalım

Öncelikle XMLTextWriter sınıfının metodlarını inceleyelim.

WriteStartDocument()

Bu metod ile XML dokuman yazmaya başlıyoruz. Nedir başlamak? XML dokumanları aslında text dokumanlardır ve bir header kaydı içerirler. Bu dokumanın XML verisi taşıdığını ve encoding bilgisini taşıyan satırdır. Ve her XMl dokumanda ilk satır olarak yerini bulur. Bu metod ile bizde XML dokumanımızı oluşturmaya başlıyoruz.

——————————————————————————–

WriteStartElement(string)

Bu metod sayesinde XML dokumana yeni bir eleman ekleyebiliyoruz.

——————————————————————————–

WriteElementString(name, text_value)

Bu metod sayesinde değer taşıyan yeni bir XML element oluşturabiliriz.

——————————————————————————–

WriteAttributeString(name, value)

Bu metod sayesinde yeni bir sıfat ve değerini yazdırabiliriz.

——————————————————————————–

WriteEndElement()

WriteStartElement(string) ile başladığımız elemanı sonlandırıyoruz.

——————————————————————————–

WriteEndDocument()

XML dokumanı sonlandırıyoruz

——————————————————————————–

Close()

Projeyi sonlandırıyoruz.

——————————————————————————–

Şimdi bir örnek yapalım. Örneğimiz aşağıdaki formatta bir XML dokuman oluştursun.

<userInfo>

<browserInfo>

<urlReferrer>Referrer URL</urlReferrer>

<userAgent>Browser Tipi</userAgent>

<userLanguages>Browser Dili</userLanguages>

</browserInfo>

<visitInfo timeVisited=”ziyaret tarihi/saati”>

<ip>IP Adresi</ip>

<rawUrl>Ziyaret Edilen Sayfa</rawUrl>

</visitInfo>

</userInfo>

<%@ Import Namespace=”System.Xml” %>

<%@ Import Namespace=”System.Text” %>

<script language=”C#” runat=”server”>

void Page_Load(object sender, EventArgs e)

{

// XMLTextWriter Orneği Oluşturuyoruz

XmlTextWriter writer = new

XmlTextWriter(Server.MapPath(”kullaniciBilgi.xml”), Encoding.UTF8);

// Dokumanı Oluşturuyor ve İlk elemanımızı yazıyoruz

writer.WriteStartDocument();

writer.WriteStartElement(”userInfo”);

// Yeni bir eleman oluşturuyoruz

writer.WriteStartElement(”browserInfo”);

// Alt Node ları yaratıyoruz

if (Request.UrlReferrer == null)

writer.WriteElementString(”urlReferrer”, “none”);

else

writer.WriteElementString(”urlReferrer”,

Request.UrlReferrer.PathAndQuery);

writer.WriteElementString(”userAgent”, Request.UserAgent);

writer.WriteElementString(”userLanguages”,

String.Join(”, “, Request.UserLanguages));

writer.WriteEndElement();

// Yeni bir eleman oluşturuyoruz

writer.WriteStartElement(”visitInfo”);

// Alt Node ları oluşturuyoruz

writer.WriteAttributeString(”timeVisited”, DateTime.Now.ToString());

writer.WriteElementString(”ip”, Request.UserHostAddress);

writer.WriteElementString(”rawUrl”, Request.RawUrl);

writer.WriteEndElement();

// Elemanı Sonlandırıyoruz

writer.WriteEndElement();

// Dokumanı sonlandırıyoruz

writer.WriteEndDocument();

writer.Close();

}

Ve örnek uygulamamızın sonucu:

<?xml version=”1.0″ encoding=”utf-8″ ?>

- <userInfo>

- <browserInfo>

<urlReferrer>/Makaleler/XMLTextWriter.aspx</urlReferrer>

<userAgent>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)</userAgent>

<userLanguages>tr</userLanguages>

</browserInfo>

- <visitInfo timeVisited=”9/6/2004 5:00:36 **”>

<ip>81.215.124.19</ip>

<rawUrl>/Makale_Projeler/UserInfoWriter.aspx</rawUrl>

</visitInfo>

</userInfo>

Bu yazı bugün ise 7
toplamda 10517 kez okunmuştur.