XML İçeriğinin Girintili Yazılması

C#, VB.NET, ASP.NET Add comments

Farklı veritabanları üzerinden çekilmiş olan XML verisinin bir dosyaya kayıt edilip ilgili alana FTP ile gönderildiği projede ihtiyaç duyduğum küçük bir örneği paylaşmak istiyorum. Düz metin formatında bulunan XML datasının standart XML formatından girintili olarak gösterilmesi.

Ahmet KaymazEvin Adresiİşin Adresi

Bu düz metni aşağıdaki gibi XML yapısında biçimlendirelim.


  
    Ahmet Kaymaz
    
      Evin Adresi
      İşin Adresi
    
  

Böylece daha okunaklı bir format elde edilmiş olunur.

using System;
using System.IO;
using System.Text;
using System.Xml;

public class Program
{

    static void Main()
    {

        Console.WriteLine(XmlBicimlendir("Ahmet KaymazEvin Adresiİşin Adresi"));
        Console.ReadLine();
    }

    public static String XmlBicimlendir(String XmlIcerik)
    {

        MemoryStream oMs = new MemoryStream();
        XmlTextWriter oXWrt = new XmlTextWriter(oMs, Encoding.Unicode);
        XmlDocument oXDoc = new XmlDocument();

        try
        {
            // XML içeriğini XmlDocument ile yükleyelim
            oXDoc.LoadXml(XmlIcerik);

            //XmlTextWriter nesnesini girintili olacak şekilde biçimlendirelim
            oXWrt.Formatting = Formatting.Indented;

            //XmlDocument içeriğini XmlTextWriter nesnesine yazdıralım
            oXDoc.WriteContentTo(oXWrt);
            //Nesnelerin sahip olduğu buffer alanını temizleyelim
            oXWrt.Flush();
            oMs.Flush();

            //MemoryStream'ın içeriğini okumak için alanın başladığı alana geri saralım
            oMs.Position = 0;

            //MemoryStream içeriğini bir StreamReader nesnesine aktaralım
            StreamReader oSr = new StreamReader(oMs);

            //StreamReader nesnesinden metni okuyalım
            XmlIcerik = oSr.ReadToEnd();
        }
        catch (XmlException ex)
        {
            XmlIcerik = "Hata Olustu." + ex.Message;
        }
        finally {
            oMs.Close();
            oXWrt.Close();
        }

        return XmlIcerik;
    }
}
Imports System
Imports System.IO
Imports System.Text
Imports System.Xml

Public Module Module1

    Sub Main()
        Console.WriteLine(XmlBicimlendir("Ahmet KaymazEvin Adresiİşin Adresi"))
        Console.ReadLine()
    End Sub

    Function XmlBicimlendir(ByVal XmlIcerik As String) As String

        Dim oMs As New MemoryStream()
        Dim oXWrt As New XmlTextWriter(oMs, Encoding.Unicode)
        Dim oXDoc As New XmlDocument()

        Try
            ' XML içeriğini XmlDocument ile yükleyelim
            oXDoc.LoadXml(XmlIcerik)

            'XmlTextWriter nesnesini girintili olacak şekilde biçimlendirelim
            oXWrt.Formatting = Formatting.Indented

            'XmlDocument içeriğini XmlTextWriter nesnesine yazdıralım
            oXDoc.WriteContentTo(oXWrt)
            'Nesnelerin sahip olduğu buffer alanını temizleyelim
            oXWrt.Flush()
            oMs.Flush()

            'MemoryStream'ın içeriğini okumak için alanın başladığı alana geri saralım
            oMs.Position = 0

            'MemoryStream içeriğini bir StreamReader nesnesine aktaralım
            Dim oSr As New StreamReader(oMs)

            'StreamReader nesnesinden metni okuyalım
            XmlIcerik = oSr.ReadToEnd()
        Catch ex As XmlException
            XmlIcerik = "Hata Olustu." & ex.Message
        Finally
            oMs.Close()
            oXWrt.Close()
        End Try

        Return XmlIcerik
    End Function
End Module

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Giriş