あなたが指定する4つの機能の違いは、最小限に抑えられています。内容はどこに行くのですか?アレックスが言及したように、メモリが懸念されるならば、xmlNewTextWriterFilename
を使うことは結果をメモリに保持する必要がないという利点があります。
上記のすべてのメソッドが属するxmlWriter APIは、提供されるAPIの1つです。もう1つはtree APIです。 xmlWriterは、ファイルに出力するwrite()を呼び出すのによく似ています。ツリーはメモリ内のネストされた構造体のようなものです。
データが非線形関数で構築され、後で情報に基づいて追加/変更するなどの場合、ツリーベースのバージョンが有効です。これには、ストリーミングxmlWriterインターフェイスでの回避策やキャッシュが必要ですあなたが出力されたら一度変更することはできません。しかし、メモリ内のツリーは、シリアル化される瞬間まで完全に調整することができます。
ツリーAPIには、メモリ全体をメモリに保持しなければならないという欠点があります。経験則は、解析されたツリーのメモリ要件は、直列化されたxmlファイルのサイズの4倍のサイズです。
私の判断は、通常、大きな文書を作成するかどうかによって決まります。もしそうでなければ、ツリーapiなら、私はそれを使います。私が望むなら、柔軟性がそこにあるでしょう。効率が懸念される場合や、大きなものを扱う場合は、ストリーミングxmlWriterを使用してください。
ツリーAPIの例は、次のとおりです。http://xmlsoft.org/examples/index.html#Tree