SimpleXML:刪除XPath 節點
在本文中,我們將探索如何使用以下方法有效地從父節點SimpleXML和XPath。
了解 SimpleXML 的限制
提供的程式碼嘗試使用 SimpleXML 在透過 XPath 找到父節點後刪除它。但是,SimpleXML 的 unset() 函數僅刪除儲存在變數中的物件引用,而不是節點本身。
DOMDocument 來救援
要克服 SimpleXML 的限制,請考慮使用 DOMDocument,更直接地操作 XML 文件的結構。
使用 DOMDocument 的解決方案
範例程式碼與輸出
<code class="php">$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();</code>
此程式碼刪除了
結論
DOMDocument 允許對 XML 文件進行更穩健的操作,包括直接刪除節點數。雖然 SimpleXML 可以方便地執行基本的 XPath 查詢,但 DOMDocument 更適合更複雜的 XML 操作任務。
以上是如何使用 SimpleXML 和 DOMDocument 刪除 XPath 節點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!