Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya memadamkan nod daripada dokumen XML menggunakan SimpleXML dan DOMDocument dalam PHP?

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

Susan Sarandon
Susan Sarandonasal
2024-10-31 06:15:38986semak imbas

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>

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>

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!

Kenyataan:
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