XML atau eXtensible Markup Language biasa digunakan untuk membuat dokumen markup yang dapat melakukan pertukaran data antar sistem yang beragam. Beberapa contoh penggunaan XML yang sering kita jumpai adalah pada punggunaan RSS (Really Simle Syndication), sitemap.xml dan masih banyak lagi yang lainnya.
Walau di beberapa tahun belakangan eksistensi XML sedikit tergeser oleh keberadaan JSON tapi tidak ada salahnya jika kita belajar cara membuat file XML dengan PHP. Akan lebih mudah jika kamu telah memahami pemrograman berorientasi objek (OOP). Pada kasus ini kita akan mengabil contoh cara membuat sitemap.xml dengan PHP karena strukturnya simpel, mudah dipahami, dan yang pasti bermanfaat untuk SEO.
Untuk dapat merancang file XML dengan PHP kita perlu memahami beberapa method yang berkaitan dengan DOM terlebih dahulu, yang paling sering digunakal adalah seperti contoh berikut ini.
-
new DOMDocument([version[, encoding]]);
Untuk membuat dokumen baru kita harus mengawali dengan kode diatas supaya tidak dianggap lanjutan dari dokumen yang sudah ada.
-
createElement(string $name[, string $value]);
Membuat elmen baru.
-
createElementNS(string $namespaceURI, string $qualifiedName[, string $value]);
Membuat elmen baru beserta Namespace.
-
setAttribute(string $name[, string $value]);
Membuat atribut baru pada sebuah elmen.
-
appendChild(DOMNode $newnode);
Menyisipkan dokumen yang telah dibuat kedalam dokumen lain.
-
formatOutput= TRUE;
Menambahkan spasi dan garis baru sesuai dengan letak kode.
-
load(string $filename[, int $options]);
Membuat file XML baru berdasarkan hasil dokumen yang dibuat.
-
saveXML([DOMNode $node[, int $options]]);
Menampilkan hasil dari dokumen yang telah kita buat.
-
Selengkapnya dapat kamu lihat disini.
Nah, setelah kamu paham dengan semua itu langkah selanjutnya adalah bersinggungan langsung dengan kodenya.
<?php
header('Content-Type: text/plain');
$host= 'http://'.$_SERVER['HTTP_HOST'];
// root url yang akan dimasukkan ke daftar sitemap
$arr_path= array('/index', '/buku-tamu', '/berlangganan', '/info', '/kontak');
// Mulai membuat DOM baru
$xml= new DOMDocument('1.0', 'utf-8');
$urlset= $xml->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9', 'urlset');
$urlset->setAttribute('xmlns:mobile', 'http://www.google.com/schemas/sitemap-mobile/1.0');
// mencetak isi dari $arr_path
foreach($arr_path as $path) {
$url= $xml->createElement('url');
$loc= $xml->createElement('loc', $host.$path);
$mobile= $xml->createElement('mobile:mobile');
$url->appendChild($loc);
$url->appendChild($mobile);
$urlset->appendChild($url); }
$xml->appendChild($urlset);
$xml->formatOutput= 1;
// menampilkan hasil
echo $xml->saveXML();
?>
Silahkan di utak-atik sendiri input yang akan di generate ke XML misalnya dengan mengkoneksikan dengan database atau yang lainnya. Sengaja Admin memberi contoh dengan array supaya mudah dicerna, toh fokus utama kita adalah koding bukan sitemap.xml itu sendiri. Kode diatas jika kita jalankan akan menghasilkan sesuatu seperti dibawah ini.
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0">
<url>
<loc>http://cyber4rt.wapsite.me/index</loc>
<mobile:mobile/>
</url>
<url>
<loc>http://cyber4rt.wapsite.me/buku-tamu</loc>
<mobile:mobile/>
</url>
<url>
<loc>http://cyber4rt.wapsite.me/berlangganan</loc>
<mobile:mobile/>
</url>
<url>
<loc>http://cyber4rt.wapsite.me/info</loc>
<mobile:mobile/>
</url>
<url>
<loc>http://cyber4rt.wapsite.me/kontak</loc>
<mobile:mobile/>
</url>
</urlset>
Awalnya memang agak membingungkan jika melihat kode semacam itu, tapi jika kamu sudah menemukan sebuah konsep bukan tidak mungkin kode seperti itu akan mudah dikerjakan. Tips: Jika ingin hasilnya disimpan kedalam file baru kamu bisa mengganti echo $xml->saveXML(); menjadi $xml->load('sitemap.xml');. Silahkan share ke teman-teman jika posting ini sangat berguna. Selamat mencoba!