XML adalah bahasa markup yang sangat mirip dengan HTML. Dokumen XML adalah teks biasa dan berisi tag yang dibatasi oleh < dan >. Ada dua perbedaan besar antara XML dan HTML −
- XML tidak menentukan kumpulan tag tertentu yang harus Anda gunakan
- XML sangat pilih-pilih tentang struktur dokumen
XML memberi Anda lebih banyak kebebasan daripada HTML. HTML memiliki sekumpulan tag tertentu. tag mengelilingi tautan, itu
memulai paragraf dan seterusnya. Namun, dokumen XML dapat menggunakan tag apa pun yang Anda inginkan. Beri tag pada rating film, beri tag pada tinggi badan seseorang. Jadi XML memberi Anda opsi untuk memasang tag Anda sendiri
XML sangat ketat dalam hal struktur dokumen. HTML memungkinkan Anda bermain cepat dan longgar dengan beberapa tag pembuka dan penutup. Tetapi tidak demikian halnya dengan XML
Daftar HTML yang bukan XML yang valid
- Braised Sea Cucumber
- Baked Giblets with Salt
- Abalone with Marrow and Duck Feet
Ini bukan dokumen XML yang valid karena tidak ada tag penutup yang cocok dengan tiga pembukaan
Daftar HTML yang merupakan XML yang valid
- Braised Sea Cucumber
- Baked Giblets with Salt
- Abalone with Marrow and Duck Feet
Mem-parsing Dokumen XML
Modul SimpleXML PHP 5 yang baru membuat penguraian dokumen XML menjadi sederhana. Itu mengubah dokumen XML menjadi objek yang menyediakan akses terstruktur ke XML
Untuk membuat objek SimpleXML dari dokumen XML yang disimpan dalam string, teruskan string ke simplexml_load_string(). Ini mengembalikan objek SimpleXML
Contoh
Coba contoh berikut -
Gopal K Verma Sairamkrishna Project submission Please see clearly XML; $xml=simplexml_load_string($note); print_r($xml); ?>Ini akan menghasilkan hasil berikut -
CATATAN - Anda dapat menggunakan fungsi simplexml_load_file (nama file) jika Anda memiliki konten XML dalam file
Untuk detail lengkap tentang fungsi penguraian XML, periksa Referensi Fungsi PHP
Menghasilkan Dokumen XML
SimpleXML bagus untuk mem-parsing dokumen XML yang sudah ada, tetapi Anda tidak dapat menggunakannya untuk membuat yang baru dari awal
Cara termudah untuk menghasilkan dokumen XML adalah dengan membangun array PHP yang strukturnya mencerminkan struktur dokumen XML dan kemudian melakukan iterasi melalui array, mencetak setiap elemen dengan pemformatan yang sesuai.
PHP Hasilkan file XML - SimpleXML, DOM, Metode Pembaca/PenulisHasilkan file XML secara dinamis menggunakan PHP tiga metode berbeda,
Tabel berikut menjelaskan metode mana yang baik untuk mengikuti standar dan mana yang tidak
OperasiDOMXML Pembaca/PenulisSimpleXMLReadDukungan yang burukWrite
Dukungan buruk Memanipulasi
Dukungan yang buruk
Dukungan yang burukDukungan Namespace Kendali Penuh
Dukungan yang burukXPATH SupportValidate
Hasilkan file XML dalam PHP SimpleXML, DOM, Metode Pembaca/Penulis
Metode XML DOM (Document Object Model).
Keunggulan DOM
Sangat cepat untuk dokumen kecil, memuat seluruh dokumen ke dalam memori
Antarmuka DOM PHP sederhana
Akses apa saja di pohon, dilalui dengan berbagai cara
Pustaka parsing XML, penggunaan libXML2 untuk DOM
Kekurangan DOM
Muat seluruh dokumen ke dalam memori
Akses data hanya setelah dokumen lengkap diurai
Mendukung PHP 5+ atau versi yang lebih baru
Buat XML menggunakan DOM
<?php $dom = new DOMDocument('1.0','UTF-8'); $dom->formatOutput = true; $root = $dom->createElement('student'); $dom->appendChild($root); $result = $dom->createElement('result'); $root->appendChild($result); $result->setAttribute('id', 1); $result->appendChild( $dom->createElement('name', 'Opal Kole') ); $result->appendChild( $dom->createElement('sgpa', '8.1') ); $result->appendChild( $dom->createElement('cgpa', '8.4') ); echo '<xmp>'. $dom->saveXML() .'</xmp>'; $dom->save('result.xml') or die('XML Create Error'); ?>
Keluaran Hasil
<?xml version="1.0" encoding="UTF-8"?> <student> <result id="1"> <name>Opal Kole</name> <sgpa>8.1</sgpa> <cgpa>8.4</cgpa> </result> </student>_
Memanipulasi XML menggunakan DOM
Manipulasi file XML yang dibuat di atas
<?php $dom = new DOMDocument(); $dom->formatOutput = true; $dom->load('result.xml', LIBXML_NOBLANKS); $root = $dom->documentElement; $newresult = $root->appendChild( $dom->createElement('result') ); $newresult->setAttribute('id', 2); $newresult->appendChild( $dom->createElement('name','Max Miller') ); $newresult->appendChild( $dom->createElement('sgpa','8.7') ); $newresult->appendChild( $dom->createElement('cgpa','8.2') ); echo ''. $dom->saveXML() .''; $dom->save('new_result.xml') or die('XML Manipulate Error'); ?>
Keluaran Hasil
hasil. xml
<?xml version="1.0" encoding="UTF-8"?> <student> <result id="1"> <name>Opal Kole</name> <sgpa>8.1</sgpa> <cgpa>8.4</cgpa> </result> <result id="2"> <name>Max Miller</name> <sgpa>8.7</sgpa> <cgpa>8.2</cgpa> </result> </student>_
Baca XML menggunakan DOM
<?php
$dom = new DOMDocument();
$dom->load('new_result.xml');
$root = $dom->documentElement;
echo "This document is store " . $root->tagName . " Result Information" . "
";
$results = $root->getElementsByTagName( 'result' );
foreach( $results as $result){
echo 'Result Id: ' . $result->getAttribute('id');
foreach( $result->getElementsByTagName('name') as $name ){
echo ' Student ' . $name->nodeValue;
}
foreach( $result->getElementsByTagName('sgpa') as $sgpa ){
echo ' SGPA ' . $sgpa->nodeValue;
}
foreach( $result->getElementsByTagName('cgpa') as $cgpa ){
echo ' CGPA ' . $cgpa->nodeValue . "
";
}
}
?>
Keluaran Hasil
hasil_baru. xml
This document is store student Result Information Result Id: 1 Student Opal Kole SGPA 8.1 CGPA 8.4 Result Id: 2 Student Max Miller SGPA 8.7 CGPA 8.2_
Metode Pembaca/Penulis XML
Keuntungan Pembaca/Penulis XML
Menggunakan sedikit memori untuk membaca dan menulis
Mengizinkan untuk mengakses segera
Mendukung PHP4+ dan PHP5+
Kelemahan Pembaca/Penulis XML
Membaca data hanya berurutan
Semua metode lambat untuk mengakses data
Contoh Pembaca XML
<?php
$reader = new XMLReader();
$reader->open('new_result.xml');
while( $reader->read() ){
if($reader->nodeType !== XMLReader::ELEMENT){
continue;
}
if($reader->localName === 'result'){
echo 'Result Id: ' . $reader->getAttribute('id');
}
if($reader->localName === 'name'){
echo ' Student ' . $reader->readString();
}
if($reader->localName === 'sgpa'){
echo ' SGPA ' . $reader->readString();
}
if($reader->localName === 'cgpa'){
echo ' CGPA ' . $reader->readString() . "
";;
}
}
?>_
Keluaran Hasil
Result Id: 1 Student Opal Kole SGPA 8.1 CGPA 8.4 Result Id: 2 Student Max Miller SGPA 8.7 CGPA 8.2
Contoh Penulis XML
<?php $writer = new XMLWriter(); $writer->openUri('result.xml'); $writer->setIndentString(' '); $writer->setIndent(true); $writer->startDocument( '1.0', 'UTF-8' ); $writer->startElement('student'); $writer->startElement('result'); $writer->writeAttribute('id', '1'); $writer->writeElement('name', 'Opal Kole'); $writer->writeElement('sgpa', '8.1'); $writer->writeElement('cgpa', '8.4'); $writer->endElement(); /* </result> */ $writer->flush(); $writer->endElement(); /* </student> */ $writer->endDocument(); ?>
Keluaran Hasil
hasil. xml
<?xml version="1.0" encoding="UTF-8"?> <student> <result id="1"> <name>Opal Kole</name> <sgpa>8.1</sgpa> <cgpa>8.4</cgpa> </result> </student>_
Membaca/Menulis SimpleXML
Penulisan SimpleXML
<?xml version="1.0" encoding="UTF-8"?> <student> <result id="1"> <name>Opal Kole</name> <sgpa>8.1</sgpa> <cgpa>8.4</cgpa> </result> </student>_0
Keluaran Hasil
simple_xml_create. xml
<?xml version="1.0" encoding="UTF-8"?> <student> <result id="1"> <name>Opal Kole</name> <sgpa>8.1</sgpa> <cgpa>8.4</cgpa> </result> </student>_1
Pembacaan XML Sederhana
<?xml version="1.0" encoding="UTF-8"?> <student> <result id="1"> <name>Opal Kole</name> <sgpa>8.1</sgpa> <cgpa>8.4</cgpa> </result> </student>_2
Keluaran Hasil
<?xml version="1.0" encoding="UTF-8"?> <student> <result id="1"> <name>Opal Kole</name> <sgpa>8.1</sgpa> <cgpa>8.4</cgpa> </result> </student>_3
- " Sebelumnya
- Berikutnya "