SimpleXML: حذف عقدة XPath
في هذه المقالة، سنستكشف كيفية حذف عقدة أصل بشكل فعال من مستند XML باستخدام SimpleXML وXPath.
فهم حدود SimpleXML
يحاول الكود المقدم استخدام SimpleXML لحذف العقدة الأصلية بعد العثور عليها عبر XPath. ومع ذلك، فإن وظيفة unset() الخاصة بـ SimpleXML تزيل فقط مرجع الكائن المخزن في متغير، وليس العقدة نفسها.
DOMDocument to the Rescue
للتغلب على قيود SimpleXML، خذ بعين الاعتبار باستخدام DOMDocument، الذي يعالج بنية مستندات XML بشكل أكثر مباشرة.
الحل باستخدام DOMDocument
مثال للكود والمخرجات
$doc = new DOMDocument; $doc->loadXML(...); $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();$doc = new DOMDocument;
$doc->loadXML(...);
$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();
الاستنتاج يسمح DOMDocument بمعالجة أكثر قوة لمستندات XML، بما في ذلك الإزالة المباشرة للعقد. في حين أن SimpleXML يمكن أن يكون ملائمًا لاستعلامات XPath الأساسية، فإن DOMDocument يعد خيارًا أكثر ملاءمة لمهام معالجة XML الأكثر تعقيدًا.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3