在 SimpleXML 中,存取和修改 XML 文件非常方便。但是,當涉及刪除特定子元素時,可能會出現某些限制。
考慮以下XML 結構:
<data> <seg>
要刪除id 為「A12」的seg 元素,請使用SimpleXML,您可以嘗試以下程式碼:
foreach($doc->seg as $seg) { if($seg['id'] == 'A12') { unset($seg); } }
不幸的是,這種方法不會刪除所需的元素,因為SimpleXML 的淺修改深度。要真正刪除它,請考慮使用以下解決方案:
DOM 擴充功能提供了另一種修改 XML 文件的方法。透過使用 dom_import_simplexml() 將 SimpleXMLElement 轉換為 DOMElement,您可以存取更強大的操作功能。
$data = '<data> <seg>
此程式碼成功刪除了目標seg 元素,產生以下XML:
<?xml version="1.0"?> <data><seg>
此外,將XPath 與SimpleXML 結合使用提供了一種簡潔的方法來選擇特定節點:
$segs = $doc->xpath('//seg[@id="A12"]'); if (count($segs) >= 1) { $seg = $segs[0]; } // Same deletion procedure as above
以上是如何有效刪除 PHP SimpleXML 中具有特定屬性的子元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!