Pek çok uygulamanızda xml verilerle çalışma fırsatınız olmuştur ve bu verilerden ihtiyacınız olanları çekmek için parse işlemleri de yapmışsınızdır. Her ne kadar xml verileri ayrıştırmak işkence gibi gelse de Linq to Xml ile işimiz biraz daha kolaylaşmış durumda. Fakat bazı xml dosyaları standart olmayabiliyor. Özellikle niteliklerin değerlerini alırken bazı elementler almak istediğimiz niteliği içermeyebiliyor ve  bu yüzden uygulama hata veriyor. Peki elementlerin almak istediğimiz niteliği içerip içermediğini nasıl kontrol ederiz?

Nasıl yaparız?

<Book Edition="3">  
<Name>..</Name> 
<Author>..</Author>
 <ISBN>..</ISBN> 
</Book>

Yukarıdaki gibi bir elementimizin olduğunu varsayıp Edition niteliğinin değerini okuyalım. Eğer elementimizin Edition isimli bir niteliği yoksa varsayılan olarak 1 değerini verelim.

string edition = p.Attributes("Edition").Any() ? p.Attribute("Edition").Value : "1";

Linq to Xml de Any() metodunu kullanarak elementimizin Edition isimli herhangi bir nitelik içerip içermediğine bakar. Eğer bir veya birden fazla nitelik varsa true döndürür yoksa false döndürür. Aynı şekilde herhangi bir elementin varlığını da bu metodla kontrol edebilirsiniz.

Kolay gelsin.

About the Author