Aşağıdaki kodlar temel bir etiket sisteminde iç içe bulunan farklı etiketlerin hangi sıra ile hangi etiketin diğer etiketin kaç kademe altında olduğunu belirtir. Xml'de olduğu gibi açılan her etiket kapanmakta ve açılan her etiket açılma sırasına göre kapanmaktadır. Her hangi bir hata kontrolü eklenmemiştir girdi verisinin doğru olduğu varsayılarak ve consolda kod yazılmıştır.

Dom mimarisi
Yukarıda örnek bir Dom hiyerarşi ifade edilmiştir.

using System;
using System.Collections.Generic;

namespace Soru1
{
    class Program
    {
        static void Main(string[] args)
        {
            string girdiVeri = "abcddceffebgghiijjhaklmmlnnookpp";

            // karakter listesi.
            List dugumListesi = new List();

            // Çıktının yazdırıldığı döngü.
            for (int i = 0; i < girdiVeri.Length; i++)
            {
                if (dugumListesi.Count != 0)
                {
                    // listedeki son eleman karşılaşılan eleman ile aynı ise
                    // kapanmıştır ve bu eleman listeden atılır.
                    if (girdiVeri[i] == dugumListesi[dugumListesi.Count - 1])
                    {
                        dugumListesi.RemoveAt(dugumListesi.Count - 1);
                    }
                    else // değilse alt düğümdür.
                    {
                        // Burada alt düğümler ekrana basılıyor.
                        for (int j = 0; j < dugumListesi.Count; j++)
                        {
                            Console.Write("-");
                        }
                        Console.WriteLine(girdiVeri[i]);

                        // listeye eleman eklenir
                        dugumListesi.Add(girdiVeri[i]);
                    }
                }
                else//liste boş ise.
                {
                    // listeye elemanın eklenmesi.
                    dugumListesi.Add(girdiVeri[i]);

                    // eleman yazdırır.
                    Console.WriteLine(girdiVeri[i]);
                }
            }
            Console.ReadKey();
        }
    }
}