特定のソースからXML文字列を取得します。DOMDocumentオブジェクトを作成し、その中にXML文字列をロードします(DOMDocument :: loadXML()を使用)。次に、必要なノード(もちろん、DOMNode)が見つかるまで、さまざまなメソッド(DOMXPathなど)を使用してXMLドキュメントをナビゲートします。
このノードには多数の子孫があり、そのノード全体(およびその子孫)を取得して、そこから新しいDOMDocumentオブジェクトを作成したいと思います。これを行う方法がわかりません。新しいDOMDocumentを作成してDOMDocument::importNode()を使用しようとしましたが、これはDOMDocumentにすでにメインドキュメントノードが含まれている場合にのみ機能するようです。この場合、インポートされたノードはメインドキュメントノードの子として追加されます。これは私が望んでいることではありません-インポートされたノードをDOMDocumentメインノードにしたいと思います。
これを行うためのより簡単な方法(つまり、独自のドキュメントに変換したい元のXMLの部分を抽出するためのより簡単な方法)があるかもしれませんが、私はそれを知りません。私はDOMDocumentに比較的慣れていませんが、SimpleXMLElementを使用していて煩わしいほどです。