Makale Özeti

Birçoğumuz projemizde XML dosyaları kullanmışızdır. Satırlar dolu XML verilerinin böylelikle görmüşüzdür. Peki hiç düşündünüz mü, bu kadar kayıt içerisinde sadece istediğim kriterlere uygun olanların ekranda görünmesini mümkün mü?. Bir XML dosyası üzerinden istenilen kriterlere uygun olarak verilerimizin görünmesini sağlayabiliriz.

Makale

Merhabalar;

Birçoğumuz projemizde XML dosyaları kullanmışızdır. Satırlar dolu XML verilerinin böylelikle görmüşüzdür. Peki hiç düşündünüz mü, bu kadar kayıt içerisinde sadece istediğim kriterlere uygun olanların ekranda görünmesini mümkün mü?. Bir XML dosyası üzerinden istenilen kriterlere uygun olarak verilerimizin görünmesini sağlayabiliriz.

 

Öncelikle bir not defteri açalım va aşağıdaki XML kodlarımızı yazalım ve Bilgiler.xml adında kaydedelim.

<?xml  version="1.0" encoding ="utf-8"?>

<Bilgiler> 

 <Egitmenler> 

  <ad>Mehmet</ad> 

  <soyad>EĞİTMEN</soyad> 

  <sehir>Ankara</sehir> 

  <ucret>1500</ucret> 

  <tarih>15/10/2006 </tarih> 

 </Egitmenler> 

 <Egitmenler> 

  <ad>Selçuk</ad> 

  <soyad>ÖZDEMİR</soyad> 

  <sehir>Istanbul </sehir> 

  <ucret>1450</ucret> 

  <tarih>12/09/2005 </tarih> 

 </Egitmenler> 

 <Egitmenler> 

  <ad>Cem </ad> 

  <soyad>BAYRAKTAROĞLU</soyad> 

  <sehir>Ankara</sehir> 

  <ucret>1550</ucret> 

  <tarih>11/12/2007 </tarih> 

 </Egitmenler> 

</Bilgiler>

 

İşlemimiz asıl şimdi başlıyor. XML de bulunan verilerimizi sorgulamak için xml sitil dosyası olan XSL dosyası oluşturmamız gerekmektedir. Not defterimizi açalım ve aşağıdaki kodlarımızı yazalım. “Sorgu.xsl” olarak dosyamızı kaydedelim.

 

<?xml  version="1.0 " encoding ="utf-8 "?> 

<xsl:stylesheet version="1.0 " 

    xmlns:xsl="http://www.w3.org/TR/WD-xsl"> 

 <xsl:template match ="/"> 

     < xsl:apply-templates select="//Egitmenler" order-by ="number(ucret) " /> 

 </xsl:template> 

 <xsl:template match ="Egitmenler "> 

  <p> 

   <xsl:value-of /> 

  </p> 

 </xsl:template> 

</xsl:stylesheet>

 

Burada dikkat edeceğimiz satır;

<xsl:apply-templates select="//Egitmenler" order-by ="number(ucret) " />

Yer alan satırdır. Burada “ucret” kolonuna göre sıralama yapacağımız belirtmektedir. Ucret kolonuna göre ASC (A-Z) sıralama işlemimiz gerçekleşecektir.

Oluşturduğumuz xslt dosyamızı XML dosyamıza tanıtmak için XML dosyamızın üst satırına XSL dosyamızı tanımlayan ifademizi yazmalıyız. 

<?xml-stylesheet type= “text/xsl” href= “Sorgu.xsl”?>

XML dosyamızı Internet Explorer da  açalım.  

Dikkat ederseniz Maas durumuna göre küçükten büyüğe doğru sıralamak görebilirsiniz. XSL dosyamızda bir kaç değişiklik yaparak süzme işlemide gerçekleştireceğimizi söylemiştik. XSL içerindeki satırlarımızı aşağıdaki gibi değiştirelim.

 

<?xml  version="1.0" encoding ="utf-8"?>

<xsl:stylesheet version="1.0 " xmlns:xsl="http://www.w3.org/TR/WD-xsl">

  <xsl:template match ="/">

    <xsl:apply-templates select="//Egitmenler" order-by ="ad" />

  </xsl:template>

  <xsl:template match ="Egitmenler[ucret='1550']">

    <table  border="1">

      <tr>

        <td>

          <xsl:value-of select="ad"/>

        </td>

        <td>

          <xsl:value-of select="soyad "/>

        </td>

        <td>

          <xsl:value-of select="sehir "/>

        </td>

      </tr>

    </table>

  </xsl:template>

</xsl:stylesheet>

 

Burada “Egitmenler” içerisinde yer alan “Ucret” kolonunda yer alan “1550” ye eşit olanları getirecektir.

Kodlarımız içerisinde yer alan order-by= “ad” kısmı sıralama özelliğini belirlemektedir. Eğer,
order-by= “-ad”  şeklinde yazarsak sıralama DESC (Z..A) türünde sıralama yapılacaktır.

Böylelikle elimizde bulunan bir XML dosya içerisinde sorgu yaparak yüzlerce satırlar içerisinde elde etmek istediğimiz değerleri nasıl alacağımızı anlatmış olduk.

 

Kolay gelsin...

 

xml_xsl.rar