SimpleXML を使用して XML ノードを削除できませんか? DOM と XPath を考慮する
SimpleXML でさまざまな属性を持つ同一の XML 要素を操作する場合、特定の要素を削除する必要がある場合があります。ただし、unset() 関数を使用してこれを実行しようとすると、望ましい結果が得られない可能性があります。
DOM および XPath の代替手段の探索
SimpleXML の変更機能には制限があります。別のアプローチは、DOM 拡張機能とその dom_import_simplexml() 関数を利用することです。これにより、SimpleXMLElement から DOMElement への変換が可能になります。
コード例
次のコードは、次のコードを示します。 DOM を使用して特定の属性を持つ XML 要素を削除する方法:
$data = '<data><seg>
By DOM を使用すると、このコードは、指定された ID を持つ seg 要素を正常に削除します。
シンプル ノード選択用の XPath
XPath (SimpleXMLElement->xpath) は、より単純なメソッドを提供します。特定のノードを選択する場合:
$segs = $doc->xpath('//seq[@id="A12"]'); if (count($segs) >= 1) { $seg = $segs[0]; } // Perform the same deletion procedure as with DOM
DOM または XPath の使用これにより、SimpleXML の変更機能の制限を克服でき、特定の属性を持つ XML ノードを効果的に削除できるようになります。
以上がSimpleXML を使用して特定の XML ノードを削除するのに問題がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。