Rumah >pembangunan bahagian belakang >tutorial php >Penghuraian dan penjanaan XML dalam PHP
XML (Extensible Markup Language) ialah format pertukaran data yang biasa digunakan yang boleh dihuraikan dan dijana oleh pelbagai bahasa pengaturcaraan. Artikel ini akan memperkenalkan penghuraian dan penjanaan XML dalam PHP.
1. Konsep asas XML
Sebelum memulakan penghuraian dan penjanaan XML dalam PHP, anda perlu memahami beberapa konsep asas XML:
2. Penghuraian XML dalam PHP
PHP menyediakan pelbagai kaedah untuk menghuraikan dokumen XML, termasuk dua kaedah yang biasa digunakan, SimpleXML dan DOMDocument.
SimpleXML ialah kaedah ringkas untuk menghuraikan dokumen XML yang disediakan oleh PHP. Ia menghuraikan dokumen XML ke dalam objek, dan boleh mendapatkan dan memanipulasi elemen dan atribut dokumen XML melalui sifat dan kaedah objek.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan SimpleXML untuk menghuraikan dokumen XML:
// 读取XML文件 $xml = simplexml_load_file('books.xml'); // 遍历books元素并输出book元素的属性和内容 foreach ($xml->books->book as $book) { echo '书名:' . $book['name'] . '<br>'; echo '作者:' . $book['author'] . '<br>'; echo '价格:' . $book->price . '<br>'; echo '<br>'; }
Dalam contoh di atas, fungsi simplexml_load_file digunakan untuk membaca buku fail XML.xml dan menghuraikannya ke dalam objek SimpleXMLElement, dan kemudian merentasi semua elemen buku di bawah elemen buku melalui gelung foreach untuk mendapatkan atribut dan kandungan elemen buku.
DOMDocument ialah kaedah menghuraikan dokumen XML berdasarkan DOM (Document Object Model) yang disediakan oleh PHP. Ia menghuraikan keseluruhan dokumen XML ke dalam pepohon, dan boleh mendapatkan dan memanipulasi elemen dan atribut dokumen XML melalui struktur hierarki nod.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan DOMDocument untuk menghuraikan dokumen XML:
// 读取XML文件 $doc = new DOMDocument(); $doc->load('books.xml'); // 遍历books元素并输出book元素的属性和内容 $books = $doc->getElementsByTagName('books')->item(0); foreach ($books->getElementsByTagName('book') as $book) { echo '书名:' . $book->getAttribute('name') . '<br>'; echo '作者:' . $book->getAttribute('author') . '<br>'; echo '价格:' . $book->getElementsByTagName('price')->item(0)->nodeValue . '<br>'; echo '<br>'; }
Dalam contoh di atas, kelas DOMDocument digunakan untuk membaca buku fail XML.xml dan menghuraikan ia menjadi objek DOMDocument. Dapatkan elemen buku dalam dokumen melalui kaedah getElementsByTagName dan rentas semua elemen buku di bawahnya untuk mendapatkan atribut dan kandungan elemen buku.
3. Penjanaan XML dalam PHP
Selain menghuraikan dokumen XML, PHP juga menyediakan pelbagai kaedah untuk menjana dokumen XML.
Sama seperti menghuraikan, apabila menggunakan SimpleXML untuk menjana dokumen XML, elemen XML juga disusun menjadi objek. Mula-mula buat objek SimpleXMLElement, kemudian tambahkan elemen dan atribut anak dengan memanggil kaedah addChildnya, dan akhirnya menukar objek SimpleXMLElement kepada rentetan XML dengan memanggil kaedah asXML.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan SimpleXML untuk menjana dokumen XML:
// 创建SimpleXMLElement对象 $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><books></books>'); // 添加book元素和属性 $book1 = $xml->addChild('book'); $book1->addAttribute('name', 'PHP入门'); $book1->addAttribute('author', '张三'); $book1->addChild('price', '29.99'); $book2 = $xml->addChild('book'); $book2->addAttribute('name', 'PHP进阶'); $book2->addAttribute('author', '李四'); $book2->addChild('price', '39.99'); // 输出XML文档 echo $xml->asXML();
Dalam contoh di atas, cipta objek SimpleXMLElement kosong dan tambahkan elemen dan atribut buku melalui addChild method , dan akhirnya menukar objek SimpleXMLElement menjadi rentetan XML dan mengeluarkannya.
Begitu juga, apabila menggunakan DOMDocument untuk menjana dokumen XML, elemen XML juga disusun menjadi nod. Gunakan kelas DOMDocument untuk mencipta objek DOMDocument, kemudian buat nod elemen dan nod atribut melalui kaedah createElement, dan tambahkannya pada dokumen melalui kaedah appendChild, dan akhirnya simpan objek DOMDocument sebagai fail XML melalui kaedah saveXML atau save.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan DOMDocument untuk menjana dokumen XML:
// 创建DOMDocument对象 $doc = new DOMDocument('1.0', 'UTF-8'); // 创建根元素 $root = $doc->createElement('books'); $doc->appendChild($root); // 创建book元素和属性 $book1 = $doc->createElement('book'); $book1->setAttribute('name', 'PHP入门'); $book1->setAttribute('author', '张三'); $root->appendChild($book1); $price1 = $doc->createElement('price', '29.99'); $book1->appendChild($price1); $book2 = $doc->createElement('book'); $book2->setAttribute('name', 'PHP进阶'); $book2->setAttribute('author', '李四'); $root->appendChild($book2); $price2 = $doc->createElement('price', '39.99'); $book2->appendChild($price2); // 输出XML文件 $doc->save('books.xml');
Dalam contoh di atas, cipta objek DOMDocument baharu dan cipta elemen akar bernama buku . Cipta elemen dan atribut buku melalui kaedah createElement dan tambahkannya pada dokumen menggunakan kaedah appendChild. Akhir sekali, gunakan kaedah simpan untuk menyimpan objek DOMDocument sebagai fail XML.
4. Ringkasan
Artikel ini memperkenalkan penghuraian dan penjanaan XML dalam PHP, termasuk menggunakan kaedah SimpleXML dan DOMDocument untuk menghuraikan dokumen XML, dan menggunakan kaedah SimpleXML dan DOMDocument untuk menjana dokumen XML. Apabila menggunakan penghuraian dan penjanaan XML, anda perlu memahami konsep asas XML, termasuk teg, atribut, ruang nama dan pengisytiharan XML. Memilih kaedah yang sesuai mengikut keperluan sebenar boleh menjadikan pemprosesan data XML lebih mudah.
Atas ialah kandungan terperinci Penghuraian dan penjanaan XML dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!