PHP ile XML formatındaki dökümanları nasıl okuyabileceğimizi anlatmaya çalışacağım.
XML formatındaki dökümanları okurken kullanacağımız fonksiyon olan simplexml_load_file() fonksiyonu PHP 5 sürümünde standart olarak gelirken daha önceki sürümlerde simpleXML sınıfının sunucuda kurulması gerekmektedir.
Bu yazımızda okuyacağımız XML belgesi Namaz Vaktim sitesinde yayınladığımız aylık namaz vakitlerini bildiren XML belgesi olacak. Bu belgeyi seçmemin önemli nedeni ise bu belgede hem nesnelere özellik olarak verilen değerler bulunması hem de etiketler içinde değerlerin bulunması.
Bu belgeyi aşağıdaki adresten inceleyebilirsiniz:
http://www.namazvaktim.com/xml/aylik/istanbul.xml
Şimdi geçelim belgeyi nasıl okuyacağımıza:
xmlreader.php:
$dosya = simplexml_load_file('http://www.namazvaktim.com/xml/aylik/istanbul.xml');
// burada simplexml_load_file(); fonksiyonu ile XML belgemizi çağırıyoruz.
$il = $dosya->il;
// Belgemizde <il>İstanbul</il> şeklinde belirlenen il adını $il değişkenimize atadık.
foreach ($dosya->vakitler as $vakitler)
{
$tarih = $vakitler["tarih"];
$imsak = $vakitler->imsak;
$gunes = $vakitler->gunes;
}
// Belgemizde birden fazla <vakitler></vakitler> nesnesi bulunduğu için bu nesne dizi olarak dönecektir.
// Bu yüzden vakitlerin her birini foreach döngüsü ile $vakitler değişkenimize atıyoruz.
// Gördüğümüz gibi <vakitler tarih=""></vakitler> şeklinde yer alan vakitler nesnemizin özelliğini
// $vakitler["tarih"] şeklinde alabiliyoruz.
// Bu nesnemizin içerisinde barındırdığı diğer nesneleri ise aynen il adını aldığımız şekilde okuyabiliyoruz.
print_r($dosya);
// Bu son işlem ile XML dosyasından okuduğumuz tüm değerleri $dosya değişkeni içerisinde
// nasıl taşıdığının çıktısını alabiliriz. Değişik formatlardaki XML dökümanlarını bu şekilde inceleyebilirsiniz.
İşlemlerin açıklamalarına kod içerisinde yer verdim. Değişik formatlardaki XML dökümanlarını inceleyerek nasıl değerlendirebileceğinize kendimiz karar verebiliriz.
Bir sonraki yazımda aynı formatta basit bir RSS Reader yapmayı göstermek istiyorum. Böylece geliştireceğiniz web uygulamalarında farklı sitelerin RSS yayınlarından faydalanabilirsiniz.
Herkese iyi çalışmalar…
Not: Sunucularında simpleXML kurulu olmayanlar burada bulunan class’ı include ederek simpleXML’e çok benzeyen fonksyionları kullanabilir.