Gunakan simplexml untuk memproses data atom. Banyak blog menggunakan atom untuk mengeluarkan data, tetapi atom menggunakan namespace, jadi sekarang Anda harus menentukan pengidentifikasi sumber daya seragam (URI) namespace saat meminta elemen bernama dan nama lokal langsung menanyakan pohon xml ini.
Dimulai dengan PHP versi 5.1, SimpleXML dapat menggunakan kueri XPath langsung pada dokumen namespace. Seperti biasa, jalur lokasi XPath harus menggunakan awalan namespace, meskipun dokumen yang dicari menggunakan namespace default. Fungsi registerXPathNamespace() mengaitkan awalan dengan URL namespace yang digunakan dalam kueri berikutnya.
Berikut ini adalah contoh penggunaan xpath untuk menanyakan elemen judul dokumen atom:
TEKS POLOS
KODE:
$atom = simplexml_load_file('http://www.ooso.net/index.php/feed/atom');
$atom->registerXPathNamespace('atom','http://www.w3.org/2005/Atom');
$judul = $atom->xpath('//atom:judul');
foreach($judul sebagai $judul)
gema"<h2>".$judul ."</h2>";
Gunakan simplexml untuk memproses data rss
Wordpress dapat menampilkan sumber data rss2, dan ada juga beberapa namespace yang berbeda, seperti dc. Contoh penggunaan simplexml untuk mengurai rss2:
TEKS POLOS
PHP:
$ns=susunan(
'konten'=>'http://purl.org/rss/1.0/modules/content/',
'wfw'=>'http://wellformedweb.org/CommentAPI/',
'dc'=>'http://purl.org/dc/elements/1.1/'
);
$artikel=array();
// langkah 1: Dapatkan umpan
$blogUrl='http://www.ooso.net/index.php/feed/rss2';
$xml= simplexml_load_url($blogUrl);
// langkah 2: Dapatkan metadata saluran
$saluran=array();
$channel['title'] =$xml->saluran->judul;
$saluran['link'] =$xml->saluran->tautan;
$saluran['deskripsi']=$xml->saluran->deskripsi;
$channel['pubDate'] =$xml->pubDate;
$channel['timestamp'] =strtotime($xml->pubDate);
$saluran['generator'] =$xml->generator;
$saluran['bahasa'] =$xml->bahasa;
// langkah 3: Dapatkan artikel
foreach($xml->saluran->itemas$item){
$artikel=array();
$artikel['saluran']=$blog;
$artikel['judul']=$item->judul;
$artikel['link']=$item->link;
$artikel['komentar']=$item->komentar;
$artikel['pubDate']=$item->pubDate;
$artikel['cap waktu']=strtotime($item->pubDate);
$artikel['deskripsi']=(string)trim($item->deskripsi);
$artikel['isPermaLink']=$item->panduan['isPermaLink'];
// menyimpan data di namespace
$konten=$item->anak-anak($ns['konten']);
$dc =$item->anak-anak($ns['dc']);
$wfw =$item->anak-anak($ns['wfw']);
$artikel['pencipta']=(string)$dc->pencipta;
foreach($dc->subjeksebagai$subjek)
$artikel['subjek'][]=(string)$subjek;
$artikel['konten']=(string)trim($konten->dikodekan);
$artikel['commentRss']=$wfw->commentRss;
// tambahkan artikel ini ke dalam daftar
$artikel[$artikel['cap waktu']]=$artikel;
}
Dalam contoh ini, gunakan metode anak-anak untuk mendapatkan data di namespace:
TEKS POLOS
PHP:
$dc =$item->anak-anak($ns['dc']);