LinqToXml işlemleri ve Order By Kullanımı



Aşağıdaki gibi bir xml dosyamız var ve biz web sitemizde kullandığımız slider’da ilk önce en son eklenenden en başta eklenene göre göstermek istiyoruz.Burada linq to xml ile order by deyimini kullanarak bu sıralamayı gerçekleştirebiliriz.

<?xml version="1.0" encoding="utf-8"?>
<Banners>
  <Banner>
    <Id>1</Id>
    <Baslik>Reklam 1</Baslik>
    <Link>#</Link>
    <ImageUrl>slider/10A05383042863A7944CC0E4899FE8A9.jpg</ImageUrl>
  </Banner>
  <Banner>
    <Id>2</Id>
    <Baslik>Reklam 2ı</Baslik>
    <Link>#</Link>
    <ImageUrl>slider/FFF6560E5D259B04219009907C0BA9A0.jpg</ImageUrl>
  </Banner>
  <Banner>
    <Id>3</Id>
    <Baslik>Reklam 3</Baslik>
    <Link>#</Link>
    <ImageUrl>slider/2AEA1B6E920A0BA5E87AF8C1BB97FC77.jpg</ImageUrl>
  </Banner>
  <Banner>
    <Id>4</Id>
    <Baslik>Reklam 4</Baslik>
    <Link>#</Link>
    <ImageUrl>slider/53A0BF585CCDC7DD649E9A0C92B08768.jpg</ImageUrl>
  </Banner>
</Banners>
//ilgili Banner Classımız
public class Banner
{
    public  string Id { get; set; }
    public  string Baslik { get; set; }
    public  string Link { get; set; }
    public  string ImageUrl { get; set; }
 
	public Banner()
	{
		//
		// TODO: Add constructor logic here
		//
	}
}
//
public Banner GetBanner(XElement item)
    {
        Banner banner = new Banner();
        banner.Id = item.Element("Id").Value.ToString();
        banner.Baslik = item.Element("Baslik").Value.ToString();
        banner.Link = item.Element("Link").Value.ToString();
        banner.ImageUrl = item.Element("ImageUrl").Value.ToString();
        return banner;
    }
//order by kullanımı 
 public List<Banner> GetBanners()
    {
        List<Banner> bannerList = new List<Banner>();
        var banners  = from item in doc.Descendants("Banner")
                      orderby (int)item.Element("Id") descending
                      select item;
        foreach (var item in banners)
        {
            Banner banner = GetBanner(item);
            bannerList.Add(banner);
        }
        return bannerList;
 
 
    }

Yukarıda yazdığımız GetBanners() isimli metodun bize döndüreceği sonuca göre sıralama aşağıdaki gibi olucaktır.Bu metodu herhangibi bir repeater yada datalist vb data kontrolune datasource olarak verebiliriz.

repeaterBanner.DataSource = bm.GetBanners();
repeaterBanner.DataBind();

Reklam4
Reklam3
Reklam2
reklam 1


  • Facebook
  • FriendFeed
  • Twitter
  • Google
  • Live
  • LinkedIn


Etiketler:, , ,


ASP.net ile ilgili teknolojileri son sürat takip eden ve yenilikleri öğrenmek için ne gerekiyorsa yapan, yeri geldiğinde masaüstü yazılım bile hazırlayabilme cesaretini gösteren bir programcıdır kendisi. Her yazılımcı gibi kodlarla boğuşmaktan geceleri gözüne uyku girmeyen ve kafasına takıldı mı sorunları çözmekten geri durmayıp çözene kadar üzerine üzerine giden bir kişiliği vardır.

“LinqToXml işlemleri ve Order By Kullanımı” yazısı için 2 yorum var.

  1. Mehmet Polat diyor ki:

    Hocam merhaba şöyle bir sorunum var hiç bir yerde çözümü bulamadım bana yardımcı olabilir misiniz?XML’le Full Flash yaptığım siteye yönetim paneli yapmaya çalışıyorum , ASP.Net ten LINQ TO xml yöntemiyle aşağıdaki kodlarla XML e kayıt ekleme yapıyorum ancak beşinci elementte ifadesi eklemem gerekiyor aşağıdaki gibi yaptığımda XML’ e karakterinin yerine de “‘&bt;’ ifadesini yani bu karakterlerin kodlarını çıkarıyor ben karakterlerini XML;’e olduğu gibi nasıl kaydedebilirim, bu durumu nasıl düzeltebilirim yardımcı olabilir misiniz? Çok teşekkürler şimdiden…

    XElement xml = new XElement(“photo”,

    new XElement(“thumbnail”, TextBox1.Text),
    new XElement(“filename”, TextBox2.Text),
    new XElement(“baslik1″, TextBox3.Text),
    new XElement(“baslik2″, TextBox4.Text),
    new XElement(“description”,”"),
    new XElement(“link”, TextBox6.Text),
    new XElement(“fiyat1″, TextBox7.Text),
    new XElement(“indorani”, TextBox8.Text));

    XDocument doc = XDocument.Load(Server.MapPath(“~/App_Data/satislar.xml”));

    doc.Root.Add(xml);

    doc.Save(Server.MapPath(“~/App_Data/satislar.xml”));

    Response.Write(“kayıt eklendi”);

  2. Mustafa Ülkü diyor ki:

    sen de karakterlerin kodlarını koymayı dene.belki o zaman olabilir.

Bir yorum yaz.


© 2011 Mustafa Ülkü'nün Not Defteri. Her hakkı saklıdır..
İmkansız diye bir şey yoktur..