Bagaimana untuk Mengeluarkan Nod Induk dengan Berkesan Menggunakan XPath dan SimpleXML dalam PHP?

Barbara Streisand
Lepaskan: 2024-10-26 02:22:02
asal
977 orang telah melayarinya

How to Effectively Remove a Parent Node Using XPath and SimpleXML in PHP?

Cara Mengeluarkan Nod XPath Menggunakan SimpleXML

SimpleXML ialah sambungan PHP yang memudahkan kerja dengan XML. Walau bagaimanapun, ia boleh mengelirukan untuk mengalih keluar nod induk menggunakan pertanyaan XPath.

Dalam contoh yang diberikan, kod menggunakan XPath untuk mencari item tertentu menggunakan IDnya dan cuba menyahset nod induknya. Walau bagaimanapun, pendekatan ini sebenarnya tidak mengalih keluar nod induk.

Untuk mengalih keluar nod dengan berkesan, anda boleh menggunakan langkah berikut:

  1. Buat objek SimpleXMLElement baharu daripada rentetan XML .
  2. Gunakan XPath untuk mencari nod sasaran seperti dalam contoh.
  3. Gunakan kaedah unset() pada rujukan objek untuk mengalih keluarnya.

Yang diubah suai kod akan kelihatan seperti ini:

<code class="php">$xml = new SimpleXMLElement($xmlString);
$data = $xml->xpath('//items/info[item_id="' . $item_id . '"]');
unset($data[0]);</code>
Salin selepas log masuk

Pendekatan Alternatif Menggunakan DOMDocument

Sebagai alternatif, anda boleh menggunakan kelas DOMDocument untuk kawalan lanjut ke atas manipulasi XML. Berikut ialah contoh:

<code class="php">$doc = new DOMDocument();
$doc->loadXML($xmlString);
$item_id = 456;
$xpath = new DOMXPath($doc);
foreach($xpath->query('//items[info/item_id="' . $item_id . '"]') as $node) {
  $node->parentNode->removeChild($node);
}
echo $doc->saveXML();</code>
Salin selepas log masuk

Kaedah ini mengalih keluar keseluruhan nod item untuk ID item yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Nod Induk dengan Berkesan Menggunakan XPath dan SimpleXML 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!