The W3C DOM dipisahkan menjadi bagian yang berbeda (Core, XML, dan HTML) dan tingkat yang berbeda (DOM Level 1/2/3):
Jika Anda ingin mempelajari lebih lanjut tentang DOM XML, silakan kunjungi XML DOM tutorial kami. XML Parsing Ada dua tipe dasar parser XML: Parser Pohon berbasis: parser ini mengubah dokumen XML menjadi struktur pohon. Ini menganalisis seluruh dokumen, dan menyediakan akses ke elemen pohon Lihatlah fraksi dokumen XML berikut: <?xml version=”1.0″ encoding=”UTF-8″?> The XML DOM melihat XML di atas sebagai struktur pohon:
instalasi XML file <?xml version=”1.0″ encoding=”UTF-8″?> Beban dan Output XML Contoh : <?php print $xmlDoc->saveXML(); Output dari kode di atas akan menjadi: Tove Jani Reminder Don’t forget me this weekend! Jika Anda memilih “Lihat sumber” di jendela browser, Anda akan melihat HTML berikut: <?xml version=”1.0″ encoding=”UTF-8″?> Contoh di atas membuat DOMDocument-Obyek dan beban XML dari “note.xml” ke dalamnya. Kemudian saveXML () fungsi menempatkan dokumen XML internal menjadi string, sehingga kita bisa output itu. Perulangan melalui XML Contoh : <?php $x = $xmlDoc->documentElement; Output dari kode di atas akan menjadi: #text = Dalam contoh di atas Anda melihat bahwa ada node teks kosong antara masing-masing elemen. Ketika XML menghasilkan, sering mengandung putih-ruang antara node. The parser XML DOM memperlakukan unsur-unsur sebagai biasa, dan jika Anda tidak menyadari dari mereka, mereka kadang-kadang menyebabkan masalah. Di dalam PHP, tersedia function untuk melakukan parsing data XML yang berasal dari situs tertentu dengan mudah . Function tersebut adalah simplexml_load_file(). Penggunaan dari function ini cukup mudah yaitu tinggal tuliskan saja target URL nya di dalam parameter function tersebut. Namun, terkadang di balik kemudahan penggunaan function simplexml_load_file() muncul juga masalah yaitu adanya Error OpenSSL ketika proses parsingnya. Bagaimana cara mengatasinya? artikel ini akan membahasnya secara jelas. Seperti yang telah dijelaskan sebelumnya bahwa penggunaan function simplexml_load_file() untuk proses parsing xml dari situs tertentu cukup mudah. Sebagai contoh misalnya diberikan script berikut ini yang mencoba memparsing data XML dari situs w3schools.com: <?php $dataXML = simplexml_load_file("https://www.w3schools.com/xml/note.xml"); print_r($dataXML); ?> Output hasil parsing script di atas adalah SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! ) Namun, terkadang proses parsing XML dengan function simplexml_load_file() seperti di atas tidak berjalan alias terdapat error, yaitu:
Biasanya error di atas muncul ketika menggunakan PHP versi lama dan situs yang menjadi target menggunakan protokol https://. Kemungkinan besar error tersebut disebabkan adanya permasalahan pada konfigurasi certificate SSL yang ada di PHP nya. Lantas, bagaimana solusinya? Solusinya adalah dengan menggunakan CURL terlebih dahulu untuk membaca data XML. Data XML yang dibaca dengan CURL ini masih dalam format string. Selanjutnya string XML tersebut barulah diparsing menggunakan simplexml_load_string(); Mengapa menggunakan CURL untuk membaca data XML nya? Ya.. karena di dalam CURL kita bisa mensetting supaya tidak ada proses verifikasi SSL nya yang menjadi sebab munculnya error di atas. Berdasarkan ide di atas, perhatikan contoh implementasinya berikut ini! <?php // target url data xml nya $url = "https://..."; // setting curl $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // menonaktifkan proses verifikasi SSL curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // baca data xml dalam bentuk string $xmlresponse = curl_exec($ch); // proses parsing xml $xml=simplexml_load_string($xmlresponse); // menampilkan struktur hasil parsing print_r($xml); ?> Berdasarkan pengalaman pribadi, teknik di atas cukup ampuh sebagai alternatif cara dari proses parsing xml dengan simplexml_load_file(), dan… alhamdulillaah terbukti sukses. Semoga tip/trik ini dapat membawa manfaat bagi yang mengalami masalah serupa seperti yang telah dijelaskan di atas. |