如何使用 SimpleXML 刪除 XPath 節點
SimpleXML 是一個 PHP 擴展,可簡化 XML 的使用。但是,使用 XPath 查詢刪除父節點可能會令人困惑。
在給定的範例中,程式碼使用 XPath 使用其 ID 來定位特定項目,並嘗試取消設定其父節點。然而,這種方法實際上並沒有刪除父節點。
要有效地刪除節點,您可以使用以下步驟:
修改後的程式碼如下所示:
<code class="php">$xml = new SimpleXMLElement($xmlString); $data = $xml->xpath('//items/info[item_id="' . $item_id . '"]'); unset($data[0]);</code>
使用DOMDocument 的替代方法
或者,您可以使用MDocument進一步控制XML 操作。以下是範例:
<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>
此方法會刪除指定項目 ID 的整個專案節點。
以上是如何在 PHP 中使用 XPath 和 SimpleXML 有效刪除父節點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!