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.