PHP DOM XML Oluşturma - Okuma
PHP DOM ile mevcut XML yapısına veri eklemeyi ve bu veriyi pratik örneklerle okumayı öğrenin.
PHP DOM sınıfını kullanarak oluşturduğumuz XML yapısına veriyi nasıl ekleyebileceğimiz ve bu veriyi nasıl okuyabileceğimiz üzerinde duracağız.
Şimdi önceki veri yapısını oluştururken kullandığımız yaklaşımdan farklı olarak createAttribute yerine setAttribute kullanacağız.
<?php
$xml = new DOMDocument();
$xml->encoding = 'UTF-8';
$kitaplar = $xml->createElement('kitaplar');
$kitap = $xml->createElement('kitap');
$kitap_isbn = $kitap->setAttribute('isbn', '9759954949'); // kitap elemanına isbn niteliğini ekliyoruz ve buna değer atıyoruz.
$kitap_adi = $xml->createElement('adi', 'Yunus Emre Divanı'); // adi elemanına değer atıyoruz.
$kitap_yazar = $xml->createElement('yazar', 'Selim Yağmur'); // **
$kitap_gorev = $kitap_yazar->setAttribute('gorev', 'Derleyici'); // *
$kitap_dil = $xml->createElement('dil', 'Türkçe'); // **
$kitap_baski = $xml->createElement('baski', 8); // **
$kitap_tarih = $xml->createElement('tarih'); // **
$kitap_tarih_yil = $xml->createElement('yil', 2014); // **
$kitap_tarih_ay = $xml->createElement('ay', 04); // **
$kitap_tarih_gun = $xml->createElement('gun', 01); // **
$kitap_tarih->appendChild($kitap_tarih_yil);
$kitap_tarih->appendChild($kitap_tarih_ay);
$kitap_tarih->appendChild($kitap_tarih_gun);
$kitap_yazar->appendChild($kitap_gorev);
$kitap->appendChild($kitap_adi);
$kitap->appendChild($kitap_yazar);
$kitap->appendChild($kitap_dil);
$kitap->appendChild($kitap_baski);
$kitap->appendChild($kitap_tarih);
$kitap->appendChild($kitap_isbn);
$kitaplar->appendChild($kitap);
$xml->appendChild($kitaplar);
$xml->save('./kutuphane.xml');
?>
XML çıktısı aşağıdaki gibidir:
<?xml version="1.0" encoding="UTF-8"?>
<kitaplar>
<kitap isbn="9759954949">
<adi>Yunus Emre Divanı</adi>
<yazar gorev="Derleyici">Selim Yağmur</yazar>
<dil>Türkçe</dil>
<baski>8</baski>
<tarih>
<yil>2014</yil>
<ay>4</ay>
<gun>1</gun>
</tarih>
</kitap>
</kitaplar>
Şimdi de oluşturduğumuz XML dosyasından veriyi okumaya gelelim. İlk olarak kaydettiğimiz XML'i okuyalım.
<?php
$xml = new DOMDocument();
$xml->load('./kutuphane.xml');
print $xml->saveXML();
?>
Bunu tarayıcınızda görüntülemek istediğinizde yüksek ihtimalle [ Yunus Emre Divanı Selim Yağmur Türkçe 8 2014 4 1 ] gibi görürsünüz. Kaynak koduna bakarsanız oluşturduğunuz XML'i görürsünüz.
Birçok eleman olduğunda ise:
<?php
$xml = new DOMDocument();
$xml->load('./kutuphane.xml');
$kitaplar = $xml->getElementsByTagName('kitap'); // hangi elemana göre listeleyeceksek örnek: adi, yazar, baski...
foreach ($kitaplar as $key => $value) {
echo $key.". eleman : ".$value->nodeValue."
";
}
?>
Ekran çıktısı;
0. eleman : Yunus Emre Divanı Selim Yağmur Türkçe 8 2014 04 01
1. eleman : Risaletü'n-Nushiyye Yunus Emre Prof. Dr. Umay Türkeş Günay Türkçe 3 2009 01 01
Kitaplar altındaki kitap elemanlarını listeyebilirsiniz ve bunlara yeni elemanlar ekleyebilirsiniz.