ホームページ >バックエンド開発 >PHPチュートリアル >SimpleXML を使用して特定の XML ノードを削除するのに問題がありますか?

SimpleXML を使用して特定の XML ノードを削除するのに問題がありますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-25 15:56:10477ブラウズ

Having Trouble Removing Specific XML Nodes with SimpleXML?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。