Kemarin saya ada kerjaan untuk membaca file sitemap.xml sebuah website pariwisata, yang kemudian untuk dimasukkan semuanya ke dalam file excel untuk dianalisa. Gampang saja sebenarnya, tinggal buka file sitemap.xml nya, kemudian copy paste ke excel. Selesai.
Tapi tidak semudah itu ternyata. Karena konten website tersebut banyak sekali, file sitemap tersebut bukan berisi url, tetapi berisi sitemap index. Apa itu? Yaitu index dari beberapa file sitemap yang lain. Lihat di Wikipedia. Banyak sekali file sitemap tersebut, pasti cape banget kalo copas dengan metode manual. Males banget…
Tanpa berpikir panjang, jawabannya untuk masalah ini adalah parsing melalui PHP dengan fungsi rekursif. Gampang saja. Begini scriptnya.
<?php $url = 'http://suparlan.com/sitemap.xml'; read_sitemap($url); function read_sitemap($url) { $xml=simplexml_load_file($url); //if file is sitemapindex if (isset($xml->sitemap)) { foreach($xml as $val) { if (isset($val)) { $pathinfo = pathinfo($val->loc); if (isset($pathinfo['extension']) && $pathinfo['extension']=='xml') read_sitemap($val->loc); } } } //if file is urlset else if (isset($xml->url)) { foreach($xml as $val) { if (isset($val)) { echo $val->loc.' '. $val->lastmod.' '. $val->changefreq.' '. $val->priority.'<br>'; } } } }