Cara Mengeluarkan Nod XPath dengan SimpleXML
Mencari dan mengalih keluar nod XML menggunakan pertanyaan XPath boleh menjadi satu cabaran dalam SimpleXML. Artikel ini menangani isu pemadaman nod induk yang dikenal pasti melalui carian XPath.
Pertimbangkan contoh berikut:
<code class="php">$xml = simplexml_load_file($filename); $data = $xml->xpath('//items/info[item_id="' . $item_id . '"]'); $parent = $data[0]->xpath("parent::*"); unset($parent);</code>
Dalam kod ini, matlamatnya adalah untuk memadamkan
Penyelesaian adalah untuk kembali menggunakan DOMDocument untuk tugas ini:
<code class="php">$doc = new DOMDocument; $doc->loadxml('<foo> <items> <info> <item_id>123</item_id> </info> </items> <items> <info> <item_id>456</item_id> </info> </items> <items> <info> <item_id>789</item_id> </info> </items> </foo>'); $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>
Kod ini akan mengalih keluar
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Nod XPath dalam SimpleXML Tanpa Kehilangan Keseluruhan Struktur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!