PHP XML Oluşturma ve Okuma

PHP ile platformlar arası veri alışverişi için kullanılan XML oluşturma ve yazma, XML okuma ve veri çekme işlemleri ile ilgili bilgiler yer almakta.

PHP XML Oluşturma

PHP ile XML işlemleri için SimpleXML, XMLReader, XMLWriter, DOMDocument gibi eklentiler mevcut.

Her bir eklentinin işlevleri birbirine benzemektedir.

DOMDocument eklentisi hem OOP-NYP yapısında hem de diğer eklentilere göre daha fazla imkan sunmaktadır.

PHP ile XML Nedir? yazısındaki örnek yapıyı oluşturalım.

DOMDocument sınıfının kurucu metodu sürüm ve karakter seti bildirimini parametre olarak alır.

$xml = new DOMDocument('1.0', 'UTF-8');

Etiket oluşturmak için DOMDocument sınıfına ait createElement metodu kullanılır.

$kisiler = $xml->createElement('kisiler');

Oluşturulan etiketi XML yapısına dahil etmek için DOMDocument sınıfına ait appendChild metodu kullanılır.

$xml->appendChild($kisiler);

Oluşan XML yapısını XML dosyası olarak kaydetmek için DOMDocument sınıfına ait save metodu, yazdırmak için saveXML metodu kullanılır.

$xml->save('kisiler.xml');
echo $xml->saveHTML();

Benzer işlemler uygulanarak istenilen XML yapısı PHP ile oluşturulabilir.

<?php

header("Content-Type: application/xml;");

$xml = new DOMDocument('1.0', 'UTF-8');

$kisiler = $xml->createElement('kisiler');

$kisi = $xml->createElement('kisi');
$sira = $xml->createElement('sira', 1);
$adi = $xml->createElement('adi', 'Yusuf');
$soyadi = $xml->createElement('soyadi', 'SEZER');

$kisi->appendChild($sira);
$kisi->appendChild($adi);
$kisi->appendChild($soyadi);

$kisiler->appendChild($kisi);
$xml->appendChild($kisiler);

$xml->save('kisiler.xml');
echo $xml->saveHTML();

?>

XML etiketlerine ait özellikleri eklemek için DOMDocument sınıfına ait createAttribute metodu kullanılır.

<?php

header("content-type: application/xml");

$xml = new DOMDocument('1.0', 'UTF-8');

$kisiler = $xml->createElement('kisiler');
$ozellik = $xml->createAttribute('aile');
$ozellik->value = 'SEZER';

$kisi = $xml->createElement('kisi');
$sira = $xml->createElement('sira', 1);
$adi = $xml->createElement('adi', 'Yusuf');
$soyadi = $xml->createElement('soyadi', 'SEZER');

$kisi->appendChild($sira);
$kisi->appendChild($adi);
$kisi->appendChild($soyadi);

$kisiler->appendChild($ozellik);
$kisiler->appendChild($kisi);
$xml->appendChild($kisiler);

$xml->save('kisiler.xml');
echo $xml->saveHTML();

?>

XML çıktısının güzel görünmesi için DOMDocument sınıfdaki formatOutput özelliğine true değerini vermek yeterli olacaktır.

PHP ile XML oluşturma ve XML veri yazma işlemleri temel olarak örneklerdeki gibi yapılır.

PHP XML Okuma

PHP ile XML Nedir? yazısındaki örnek yapıyı okuyalım.

XML dosyalarını okumak için DOMDocument sınıfına ait load metodu kullanılır.

<?php

$xml = new DOMDocument();
$xml->load("kisiler.xml");

echo $xml->saveXML();

?>

Metot XML yapısını PHP DOMDocument sınıfı yapısına çevirerek DOMDocument metotların kullanımına imkan verir.

PHP ile XML okuma işlemlerinde önemli olan XML içindeki verinin uygun bir şekilde yazdırılmasıdır.

Uygun verilerin seçilmesi için DOMDocument sınıfına ait getElementById veya getElementsByTagName metotları kullanılır.

<?php

$xml = new DOMDocument();
$xml->load('kisiler.xml');

$kisiler = $xml->getElementsByTagName('adi');

$html = "<ul>";

foreach ($kisiler as $ad) {
    $html .= "<li>" . $ad->nodeValue . "</li>";
}

$html .= "</ul>";

echo $html;

?>

PHP ile XML içindeki verileri XPath ile aramak için DOMXPath sınıfı kullanılır.

<?php

$xml = new DOMDocument();
$xml->load('kisiler.xml');

$sorgu = new DOMXPath($xml);
$sonuc = $sorgu->query("/kisiler/kisi/adi[contains(.,'u')]");

echo $sonuc->item(0)->nodeValue

?>

Uygun veriyi bulmak için DOMXPath sınıfına ait query metoduna uygun XPath ifadesinin yazılması yeterli olacaktır.

PHP Derslerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!