How to Read RSS Feed using PHP DOMDocument Class

RSS(Really Simple Syndication) adalah sebuah fitur yang digunakan untuk menampilkan berita, terutama update berita terbaru, ke dalam sebuah tampilan sederhana, tanpa adanya iklan-iklan.
Sering kita temui berbagai web yang menggunakan fitur RSS ini. Menurut wikipedia sendiri, RSS adalah sebuah file berformat XML untuk sindikasi yang telah digunakan (diantaranya dan kebanyakan) situs web berita dan weblog. Singkatan ini biasanya mengarah ke beberapa

  • Rich Site Summary (RSS 0.91)
  • RDF Site Summary (RSS 0.9 and 1.0)
  • Really Simple Syndication (RSS 2.0)

Teknologi yang dibangun dengan RSS mengijinkan kita untuk berlangganan kepada situs web yang menyediakan umpan web (feed) RSS, biasanya situs web yang isinya selalu diganti secara reguler.
Adanya RSS mempermudah kita mendapatkan update berita secara sederhana yang relatif ringan karena tidak terdapat iklan-iklan di dalamnya.

Bagaimana si struktur RSS itu?
secara sederhana. sesuai format XML adalah sebagai berikut:

<rss version="(versi RSS)">
  <channel>
    <title>judul RSS</title>
    <link>URL RSS</link>
    <description>
        Deskripsi RSS
    </description>
    <item>
        <title>judul berita 1</title>
        <link>URL berita 1</link>
        <description>
           deskripsi berita 1
        </description>
    </item>
    <item>
        <title>judul berita 2</title>
        <link>URL berita 2</link>
        <description>
           deskripsi berita 2
        </description>
    </item>
  </channel>
</rss>

Ingat! banyaknya item tersebut bergantung pada banyaknya berita yang ada pada RSS feed tersebut.

Nah PHP sendiri menyediakan cara sederhana membaca RSS feed tersebut dengan menggunakan DOMDocument Class. Berikut adalah contoh sederhananya, dengan mengambil contoh RSS okezone.com yaitu http://sports.okezone.com/rss

<?php
$xml = "http://sindikasi.okezone.com/index.php/sports/RSS2.0";//URL RSS Feed
$xmlDoc = new DOMDocument();                                 //memanggil Class DOMDocument
$xmlDoc->load($xml);

$item = $xmlDoc->getElementsByTagName("item");               //ambil tiap tag item
$itemCount = $item->length;                                  //menghitung banyaknya tag item pada RSS tersebut
for ($i=0; $i<$itemCount; $i++) 
{
    $title = $item->item($i)->getElementsByTagName("title")->item(0)->childNodes->item(0)->nodeValue;
    $URL = $item->item($i)->getElementsByTagName("link")->item(0)->childNodes->item(0)->nodeValue;
    $desc = $item->item($i)->getElementsByTagName("description")->item(0)->childNodes->item(0)->nodeValue;

    echo $title."<br/>";
    echo $URL."<br/>";
    echo $desc."<br/>";
    echo "<br/><br/>";
}
?>

INGAT!!
perhatikan struktur XML dari RSS feed yang akan dipakai. Contoh di atas adalah struktur dasar dari RSS feed yang dipakai

<?php
//ambil isi tag item dengan tag title
 $itemTitle = $items->item($i)->getElementsByTagName("title")->item(0)->childNodes->item(0)->nodeValue; 
//ambil isi tag item dengan tag link
 $itemURL = $items->item($i)->getElementsByTagName("link")->item(0)->childNodes->item(0)->nodeValue; 
//ambil isi tag item dengan tag description
 $itemDesc = $items->item($i)->getElementsByTagName("description")->item(0)->childNodes->item(0)->nodeValue; 
?>

potongan code di atas menunjukkan bagaimana fungsi tersebut mengambil item dengan tag-tag yang ada. Jika RSS feed tersebut menyediakan informasi tambahan seperti <pubdate>, maka tinggal ditambahkan pada fungsi tersebut.

Regard,
~andrew89ongi~

5 Comment

  1. Because the admin of this site is working, no hesitation very shortly it will be renowned, due to its quality contents.

  2. aku ga suka diPHP in 🙁 :mrgreen:

    1. walah…iki kok tekan PHP yg itu.. 😆

  3. Its like you read my mind! You appear to know so much
    about this, like you wrote the book in it or something. I think that you could do with some
    pics to drive the message home a bit, but other than that, this is magnificent blog.
    An excellent read. I’ll definitely be back.

  4. Lamar says: Balas

    Hello i am kavin, its my first occasion to commenting anywhere, when i
    read this article i thought i could also create comment due to this brilliant paragraph.

Tinggalkan Balasan