Bagaimanakah saya memadamkan nod daripada dokumen XML menggunakan SimpleXML dan DOMDocument dalam PHP?

Susan Sarandon
Lepaskan: 2024-10-31 06:15:38
asal
1058 orang telah melayarinya

How do I delete nodes from an XML document using SimpleXML and DOMDocument in PHP?

Memadamkan Nod dalam SimpleXML

Menyiasat Nod XPath

Untuk memadamkan nod dalam SimpleXML menggunakan XPath, ikut langkah berikut:

  1. Muatkan dokumen XML ke dalam objek SimpleXMLElement.
  2. Gunakan kaedah xpath() untuk mencari nod yang diingini.
  3. Simpan keputusan dalam pembolehubah, cth., $data.

Penyingkiran Nod

Untuk mengalih keluar nod induk nod yang dipilih, anda tidak boleh menggunakan unset($ ibu bapa). Sebaliknya, anda perlu menggunakan kaedah __unset() atau kembali kepada DOMDocument.

Menggunakan __unset()

Kaedah __unset() dipanggil apabila anda cuba menyahset sifat sesuatu objek. Untuk mengalih keluar nod menggunakan __unset(), cipta objek SimpleXMLElement baharu dan nyahset nod yang diingini, seperti yang ditunjukkan di bawah:

<code class="php">$newNode = new SimpleXMLElement('<a><b></b></a>');
unset($newNode->b);
echo $newNode->asxml(); // Prints <a></a></code>
Salin selepas log masuk

Menggunakan DOMDocument

DOMDocument menyediakan lebih banyak lagi kawalan terperinci ke atas manipulasi XML. Untuk mengalih keluar nod menggunakan DOMDocument:

  1. Buat objek DOMDocument baharu dan muatkan dokumen XML.
  2. Gunakan kaedah xpath() untuk mencari nod yang dikehendaki.
  3. Alih keluar nod menggunakan parentNode->removeChild($node).

Contoh dengan DOMDocument

<code class="php">$doc = new DOMDocument;
$doc->loadxml('<foo><items><info><item_id>123</item_id></info></items></foo>');
$item_id = 123;

$xpath = new DOMXpath($doc);
foreach ($xpath->query('//items[info/item_id="' . $item_id . '"]') as $node) {
  $node->parentNode->removeChild($node);
}
echo $doc->savexml(); // Prints <foo><items><info><item_id>123</item_id></info></items></foo></code>
Salin selepas log masuk

Dengan menggunakan teknik ini, anda boleh mengalih keluar nod daripada dokumen XML dengan berkesan menggunakan SimpleXML dan DOMDocument.

Atas ialah kandungan terperinci Bagaimanakah saya memadamkan nod daripada dokumen XML menggunakan SimpleXML dan DOMDocument dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan