再利用する前に、MSXML2.DOMDocument オブジェクトの以前のコンテンツをクリアする簡単な方法はありますか? 私はそれらを破棄して毎回新しいインスタンスを作成する習慣がありましたが、これは無駄だと思い、いくつかのテストケースをプロファイリングするとこれが確認されるようです.
この場合、移植性のために MSXML 3.0 を使用していますが、この古いバージョンには、XPath を使用して大量のノード セットを選択する場合にいくつかの癖があることに気付きました。ドキュメント ツリー全体を選択してから削除しようとすると、きれいに感じられず、思ったほど速く動作しません。MSXML 3.0 が使用する "怠惰な選択" も自信を持たせません。
以前は、MSXML 3.0 以前のバージョンでは、selectNodes メソッドを呼び出すことによって作成された選択オブジェクトがノード セットを徐々に計算していました。DOM ツリーが変更された場合、selectNodes 呼び出しがまだそのコンテンツをアクティブに反復している間に、選択または返されたノードが動作によって変更される可能性がありました。MSXML 4.0 以降では、ノード セットの結果は選択時に完全に計算されます。これにより、反復が単純で予測可能になります。まれに、この変更により、以前の動作に対応するために記述されたレガシー コードが影響を受ける場合があります。
また、このようなオブジェクトを再利用するには、使用するまでに残る可能性があるさまざまなプロパティ (SelectionLanguage など) の現在の設定に注意する必要があることも認識しています。ただし、特に再利用が常に同じパターンに従う場合は、大したことではないと思います。
私が求めているのは、ロードされた DOM をクリアして再利用するためのクリーンで迅速な方法、または再利用が再作成の代替手段よりも悪い理由についてのより多くの入力であると思います。