Penghuraian dan penjanaan XML dalam PHP

WBOY
Lepaskan: 2023-06-22 11:28:01
asal
2391 orang telah melayarinya

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:

  1. tag (elemen ) : Unit asas dalam XML, yang terdiri daripada teg permulaan, teg penamat dan kandungan di antaranya.
  2. Atribut: Maklumat tambahan dalam teg, yang terdiri daripada nama atribut dan nilai atribut, disimpan dalam teg permulaan.
  3. Ruang nama: Nama yang digunakan untuk membezakan elemen atau atribut yang sama dalam dokumen XML yang berbeza.
  4. Pengisytiharan XML: Tentukan versi dan pengekodan dokumen XML.

2. Penghuraian XML dalam PHP

PHP menyediakan pelbagai kaedah untuk menghuraikan dokumen XML, termasuk dua kaedah yang biasa digunakan, SimpleXML dan DOMDocument.

  1. SimpleXML

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>';
}
Salin selepas log masuk

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.

  1. DOMDocument

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>';
}
Salin selepas log masuk

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.

  1. SimpleXML

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();
Salin selepas log masuk

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.

  1. DOMDocument

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');
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!