Sebagian besar CMS sudah mendukung fitur RSS. Dengan RSS, kita dapat memperoleh ringkasan konten website dengan lebih mudah. Contoh penggunaanya misalnya apabila hendak menampilkan recent post. Tentu saja kita tidak memerlukan keseluruhan properti dari konten. Paling tidak, kita cukup memerlukan Judul dan tanggal publikasi. Daripada harus berurusan dengan database, menampilkan hasil berdasarkan RSS akan jauh lebih mudah.
Sebelum memproses RSS, kita perlu mengetahui struktur dari RSS itu sendiri. Cara termudah adalah dari mengamati XML tree viewer (codebeautify.org/xmlviewer). Sebagai contoh kasus, tulisan ini akan menggunakan RSS versi 2 dari blog Komputoo.
http://www.komputoo.tk/feeds/posts/default?alt=rss
Jika dilihat-lihat, bentuk strukturnya secara ringkas akan terlihat seperti di bawah ini.
Nah, tampak jelas bahwa bagian deskripsi utama yang menunjukkan detail web ada di bawah bagian rss->channel. Lalu deskripsi spesifik tiap post ada di rss->channel->item, yang tersusun dalam deretan array. Setelah kita tahu ini, membaca RSS akan terasa lebih mudah. Langsung saja, lihat dan praktekkan kode berikut pada server anda.
Hasilnya...
Cara termudah untuk mengakses tiap konten tag XML pada RSS adalah menggunakan fungsi SimpleXML. Setelah file XML diload dengan simplexml_load_file(), setiap tag di dalamnya dapat diakses layaknya mengakses member dari suatu objek. Misalnya, jika ingin mengakses judul dari postingan ke-2 dari RSS tersebut, kita dapat melakukannya secara langsung dengan kode ini:
rss->channel->item[1]->title
Bentuk XML yang digunakan dalam RSS sama persis dengan yang digunakan HTML. Beberapa elemen RSS juga akan ditemukan atribut di dalamnya. Apabila ingin mengaksesnya, gunakan method attributes() untuk memperoleh list objek atribut yang dapat diakses. Misalnya, apabila struktur salah satu elemen dalam item terlihat seperti ini:
<link url="???"></link>
Atribut url di atas dapat diakses dengan kode ini:
$rss->channel->item[x]->attributes()->url
Sangat mudah, ya! Eits, belum sampai disitu. kita harus mengetahui cara mengakses tag yang tertulis bersama namespace, seperti berikut.
<media:thumbnail ... url="???" .../>
Cara mengakses tag semacam itu adalah dengan memperoleh objek namespace dari objek XML yang telah diload.
$namespaces = $rss->getNamespaces(true);
Untuk selanjutnya, atribut url di atas dapat diakses dengan kode seperti ini:
$rss->channel->item[x]->children($namespaces['media'])->thumbnail->attributes()->url;
Sekian tips dari saya, semoga bermanfaat.
Sebelum memproses RSS, kita perlu mengetahui struktur dari RSS itu sendiri. Cara termudah adalah dari mengamati XML tree viewer (codebeautify.org/xmlviewer). Sebagai contoh kasus, tulisan ini akan menggunakan RSS versi 2 dari blog Komputoo.
http://www.komputoo.tk/feeds/posts/default?alt=rss
Jika dilihat-lihat, bentuk strukturnya secara ringkas akan terlihat seperti di bawah ini.
<?xml version='1.0' encoding='UTF-8'?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" ... version="2.0">
<channel>
<atom:id>tag:blogger.com,1999:blog-5968298389595427058</atom:id>
<lastBuildDate>Thu, 16 Feb 2017 06:44:18 +0000</lastBuildDate>
<category>Assembly</category>
<category>ZLIB</category> <title>Komputoo Tech</title> <description>Belajar Teknologi Itu Menyenangkan!</description> <link>http://www.komputoo.tk/</link> <managingEditor>noreply@blogger.com (Muhammad Irvan Hermawan)</managingEditor> <generator>Blogger</generator> ... <item> <guid>...</guid> <pubDate>Wed, 15 Feb 2017 08:03:00 +0000</pubDate> <atom:updated>2017-02-15T00:03:47.699-08:00</atom:updated> <category ...>Share</category> <category ... >Web</category> <title>Melihat Internet Dalam Satu Detik</title> <description>Pernahkah terpikirkan, ...</description> <link>http://...melihat-internet-dalam-satu-detik.html</link> <author>noreply@blogger.com (Muhammad Irvan Hermawan)</author> <media:thumbnail ... url="???" .../> <thr:total>0</thr:total> </item> <item> ... </item> <item> ... </item> <item> ... </item> </channel> </rss>...
Nah, tampak jelas bahwa bagian deskripsi utama yang menunjukkan detail web ada di bawah bagian rss->channel. Lalu deskripsi spesifik tiap post ada di rss->channel->item, yang tersusun dalam deretan array. Setelah kita tahu ini, membaca RSS akan terasa lebih mudah. Langsung saja, lihat dan praktekkan kode berikut pada server anda.
<?php $rss = simplexml_load_file("http://www.komputoo.tk/feeds/posts/default?alt=rss"); $items = $rss->channel->item; foreach ($items as $item){ $judul = $item->title; $tgl = date("j m y", strtotime($item->pubDate)); $pnl = explode("(", $item->author)[1]; $pnl = explode(")", $pnl)[0]; echo "<li>". $judul . " "; echo $tgl . " "; echo $pnl . "</li>"; } ?>
Hasilnya...
Cara termudah untuk mengakses tiap konten tag XML pada RSS adalah menggunakan fungsi SimpleXML. Setelah file XML diload dengan simplexml_load_file(), setiap tag di dalamnya dapat diakses layaknya mengakses member dari suatu objek. Misalnya, jika ingin mengakses judul dari postingan ke-2 dari RSS tersebut, kita dapat melakukannya secara langsung dengan kode ini:
rss->channel->item[1]->title
Bentuk XML yang digunakan dalam RSS sama persis dengan yang digunakan HTML. Beberapa elemen RSS juga akan ditemukan atribut di dalamnya. Apabila ingin mengaksesnya, gunakan method attributes() untuk memperoleh list objek atribut yang dapat diakses. Misalnya, apabila struktur salah satu elemen dalam item terlihat seperti ini:
<link url="???"></link>
Atribut url di atas dapat diakses dengan kode ini:
$rss->channel->item[x]->attributes()->url
Sangat mudah, ya! Eits, belum sampai disitu. kita harus mengetahui cara mengakses tag yang tertulis bersama namespace, seperti berikut.
<media:thumbnail ... url="???" .../>
Cara mengakses tag semacam itu adalah dengan memperoleh objek namespace dari objek XML yang telah diload.
$namespaces = $rss->getNamespaces(true);
Untuk selanjutnya, atribut url di atas dapat diakses dengan kode seperti ini:
$rss->channel->item[x]->children($namespaces['media'])->thumbnail->attributes()->url;
Sekian tips dari saya, semoga bermanfaat.
0 comments