XML İşlemleri: SimpleXML Kullanımı ve RSS Feed Oluşturma

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
XML, verileri hiyerarşik bir yapıda saklamamıza olanak tanır. PHP'de bu verilerle çalışmak için en pratik yol SimpleXML kullanmaktır. Bu rehberde hem bir XML dosyasını okumayı hem de forumunuz için nasıl bir RSS (haber akışı) oluşturacağınızı öğreneceğiz.

1. XML Verisini Okuma (simplexml_load_string)​


Elinizde bir XML metni veya dosyası varsa, SimpleXML bunu bir nesneye (Object) dönüştürerek verilere erişmenizi sağlar.

PHP:
<?php
$xml_veri = '<?xml version="1.0" encoding="UTF-8"?>

<forum>
<kategori ad="Yazılım">
<konu id="1">PHP XML Rehberi</konu>
<konu id="2">PDO Kullanımı</konu>
</kategori>
</forum>';

$xml = simplexml_load_string($xml_veri);

// Özniteliğe (Attribute) erişim
echo "Kategori: " . $xml->kategori['ad'] . "

";

// Alt elemanlara erişim
foreach ($xml->kategori->konu as $konu) {
echo "ID: " . $konu['id'] . " - Başlık: " . $konu . "

";
}
?>

2. RSS Feed (Haber Akışı) Oluşturma​


Forumunuzdaki son konuları diğer sitelerin veya haber okuyucuların (Feedly vb.) çekebilmesi için bir RSS dosyası oluşturmak çok profesyonel bir dokunuştur.

PHP:
<?php
header("Content-Type: application/rss+xml; charset=UTF-8");

$rss = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"></rss>');

$kanal = $rss->addChild('channel');
$kanal->addChild('title', 'Yazılım Forumu - Son Konular');
$kanal->addChild('link', 'https://www.siteniz.com');
$kanal->addChild('description', 'En yeni PHP ve Yazılım konuları.');

// Veritabanından verilerin geldiğini varsayalım
$konular = [
['baslik' => 'SimpleXML Kullanımı', 'link' => 'https://siteniz.com/1', 'ozet' => 'PHP ile XML işlemleri...'],
['baslik' => 'RSS Nedir?', 'link' => 'https://siteniz.com/2', 'ozet' => 'RSS akışları hakkında her şey...']
];

foreach ($konular as $k) {
$item = $kanal->addChild('item');
$item->addChild('title', $k['baslik']);
$item->addChild('link', $k['link']);
$item->addChild('description', $k['ozet']);
}

echo $rss->asXML();
?>

XML İşlemleri Fonksiyon Tablosu​


FonksiyonGöreviKullanım Alanı
simplexml_load_file()Uzak veya yerel bir XML dosyasını yükler.Sitemap veya kur bilgisi çekmek.
simplexml_load_string()Bir metin değişkenindeki XML'i okur.API'den dönen XML yanıtları.
asXML()SimpleXML nesnesini XML metnine çevirir.Dosyaya kaydetmek veya ekrana basmak.
addChild()Nesneye yeni bir alt eleman ekler.Dinamik XML/RSS oluşturma.

3. Önemli İpucu: CDATA Kullanımı​


XML içinde < veya & gibi karakterler içeren metinler (örneğin HTML kodları) varsa, XML yapısının bozulmaması için bu verileri CDATA içine almalısınız. SimpleXML bunu doğrudan desteklemez, ancak metni bir değişkene atarken manuel olarak ekleyebilirsiniz:

PHP:
$item->addChild('description', '<![CDATA[' . $icerik . ']]>');

Sonuç​


SimpleXML, PHP'nin bize sunduğu en güçlü ve kullanımı en kolay araçlardan biridir. İster Google'a sunmak için bir sitemap.xml oluşturun, ister Merkez Bankası'ndan döviz kurlarını çekin; SimpleXML ile bu işlemleri saniyeler içinde halledebilirsiniz.
 
Geri
Üst