SimpleXML:刪除XPath 節點
在本文中,我們將探討如何使用以下方法有效地從XML 文件中刪除父節點: SimpleXML 和XPath。
了解 SimpleXML限制
提供的程式碼嘗試使用 SimpleXML 在透過 XPath 找到父節點後刪除它。然而,SimpleXML 的 unset() 函數僅刪除儲存在變數中的物件引用,而不是節點本身。
DOMDocument 來拯救
要克服 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();
此程式碼刪除 item_id 456 的產品的
結論
DOMDocument 允許對 XML 文件進行更穩健的操作,包括直接刪除節點。雖然 SimpleXML 對於基本的 XPath 查詢很方便,但 DOMDocument 更適合更複雜的 XML 操作任務。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3