Bu makalemizde C# dili ile xml dosya işlemlerinin nasıl yapıldığını inceleyeceğiz.
Xml Writing
System.Xml namespace'in altında yer alan XmlTextWriter sınıfını xml yazmak için kullanabiliriz.
Bu sınıfın metodlarını ve özelliklerini inceleyelim :
Formatting : yazıların hizalanıp hizalanmayacağı,
WriteStartDocument() : xml dosyasını yazmaya başlar,
WriteEndDocument() : xml dosyasının yazımını bitirir,
WriteStartElement() : yeni bir element(katman) oluşturur, <Element>
WriteAttributeString() : elemente yeni bir attribute ekler
WriteString() : elementler arasına string ifade yazar,
WriteEndElement() : oluşturulan katmanı sonlandırır, </Element>
Aşağıdaki kod parçasının oluşturacağı xml dosyası şu şekildedir :
Aşağıdaki gibi katmanlı bir yapı oluşturmak içinde WriteStartElement() ve WriteEndElement() metodlarını içiçe kullanabiliriz.
Bu sınıfın metodlarını ve özelliklerini inceleyelim :
Formatting : yazıların hizalanıp hizalanmayacağı,
WriteStartDocument() : xml dosyasını yazmaya başlar,
WriteEndDocument() : xml dosyasının yazımını bitirir,
WriteStartElement() : yeni bir element(katman) oluşturur, <Element>
WriteAttributeString() : elemente yeni bir attribute ekler
WriteString() : elementler arasına string ifade yazar,
WriteEndElement() : oluşturulan katmanı sonlandırır, </Element>
Aşağıdaki kod parçasının oluşturacağı xml dosyası şu şekildedir :
<?xml version="1.0"?>
<Layer1 id="1">inside layer1</Layer1>
string fileName = "xmldemo";
XmlTextWriter writer = new XmlTextWriter(Application.StartupPath + @"\" + fileName + ".xml", null);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteStartElement("Layer1");
writer.WriteAttributeString("id", "1");
writer.WriteString("inside layer1");
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
Aşağıdaki gibi katmanlı bir yapı oluşturmak içinde WriteStartElement() ve WriteEndElement() metodlarını içiçe kullanabiliriz.
<?xml version="1.0"?>
<Layer1 id="1">
<Layer2>inside layer2</Layer2>
</Layer1>
string fileName = "xmldemo";
XmlTextWriter writer = new XmlTextWriter(Application.StartupPath + @"\" + fileName + ".xml", null);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteStartElement("Layer1");
writer.WriteAttributeString("id", "1");
writer.WriteStartElement("Layer2");
writer.WriteString("inside layer2");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
Xml Reading
Oluşturduğumuz xmldemo.xml dosyasını aşağıdaki gibi okuyabiliriz.
string fileName = "xmldemo"; XmlTextReader reader = new XmlTextReader(Application.StartupPath + @"\" + fileName + ".xml"); while (reader.Read()) { if (reader.Name == "Layer1" && reader.NodeType == XmlNodeType.Element) { string id = reader.GetAttribute("id"); } else if (reader.Name == "Layer2" && reader.NodeType == XmlNodeType.Element) { reader.Read(); string text = reader.Value; } }
Hiç yorum yok:
Yorum Gönder