Gelelim bu standart sınıfın kullanışına;
İlk olarak XML sayfasına erişmemiz gerekiyor, ben simplexml_load_string sınıfını kullanarak buna erişim için örnek bir değişken verisi hazırladım;
$veri ='
';
simplexml_load_file ve simplexml_load_string arasındaki ana büyük fark, birisinde dosyaların aynı sayfada bulunmayan bir kaynaktan çekilmesidir. Haliyle bu da diğer yönteme göre milisaniye boyutunda da olsa zaman kaybı şeklinde değerlendirilebilir. Verilerin daha sıkışık ve rahat saklanabilir şekilde bir değişkene atandığını düşünüyorum. PHP sayfama $veri şeklinde bir değişken oluşturdum ve içerisinde XML yapımı girdim. Bu yapım hiyerarşik olarak depolandığı için okunmasında da hazır bir sınıf kullanabiliriz. XML yapısı (ee haliyle RSS yapısı) belirli bir hiyerarşiye göre oluşturulduğu için okunma noktasında da bu bize kolaylık sağlayacaktır.
Verilerime ulaşabilmek için;
- Ürünler -> Ürün bilgileri -> Ürün adı
şeklinde bir yapıyı izlemem gerekiyor. Daha fazla veri ve değer oluşturabildiği gibi, varsayılan olarak herhangi bir kısıtlamamız yoktur. Ben örnek teşkil etmesi için bir tane değer atamayı uygun gördüm. Gelelim oluşturulmuş olan verimizi PHP ile okumaya;
$xml=simplexml_load_string($veri);
echo $xml->urunler->urunbilgileri->urunadi;
İlk adımda fonksiyonumuzu bir değerle birlikte çalıştırıyoruz. simplexml_load_string fonksiyonu içerisinde $veri değişkenini göndererek dönen sonucu $xml değişkenine atıyorum. Burada dönen sonucu bir dizi olarak veya standart bir sınıf olarak çekmem mümkün. XML fonksiyonları PHP içerisinde sınıflandırılarak depolandığı için varsayılan class yapısıyla bu verilere ikinci satırdaki gibi ulaşabilirim. İkinci satırda da ulaştığım verileri ekrana basıyorum. Hiyerarşik yapıyı takip ederek ürün adına ulaşıyorum. Bu değer return edilmiş olan ve varsayılan olarak string olarak karşımıza çıkan bir değerdir. Bu nedenle kullanımı esnasında ham olarak işlenebilir. (Bu da demek oluyor ki sayısal işlem yapmamız gerektiğinde çekilen verilerin -artık hangi sınıfta bulunuyorsa- integer gibi bir grupta belirtilmesi gerekebilir.)
Yüklenen değeri bir dosyadan çektiğimizde ise ilk olarak bu adresten çekilen veriyi bir değere atayıp string fonksiyonu ile çalışabiliriz. İkinci yolumuz ise okunan verileri (string fonksiyonuna atamadan) direkt olarak okuyabiliriz. Sizin sisteminizde hangisi kullanılması gerekiyorsa, ihtiyaçlarınızı değerlendirerek uygun olanı kullanabilirsiniz.
Herkese hayırlı günler, hayırlı Ramazanlar diliyorum.
Kaynak: PHP’de XML & RSS Okuma | Lokuf.com