ホームページ >バックエンド開発 >PHPチュートリアル >PHP の SimpleXML で特定の属性を持つ子要素を効果的に削除するにはどうすればよいですか?
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 中国語 Web サイトの他の関連記事を参照してください。