" " ノードのセットを保持する xml ファイルがありますgame
(コンソール ゲームでゲームを保存する場合と同様に、保存されたゲームプレイに関する詳細が含まれています)。games
これらはすべて " " ルート ノードに含まれています。この xml ファイルに保存機能を実装しており、ルート ノード " "game
内の " " ノードとその子ノードを追加または上書きできるようにしたいと考えています。games
これはどのように達成できxmllite.dll
ますか?
まれに、そこにあったバイト数とまったく同じ数のバイトを上書きすることを保証できる場合を除いて、テキストファイル(XMLファイルを含む)を物理的に「その場で書き換える」ことはできません。常に行う必要があるのは、新しいファイル(古いファイルの一部と新しい部分を含む)を作成し、古いファイルの名前を変更することです(たとえば、ハングしたままになっている可能性のある古いファイル.bak
を削除した後、ファイルに拡張子を追加します.bak
周り)、新しいファイルの名前を古い名前に変更し、この時点でのみ古いファイルを削除します。このアプローチにより、作業中のコンピューターまたはディスクのクラッシュが災害にならないことが保証されます。古いデータまたは新しいデータのいずれかが発生します(クラッシュが2つの間にある場合は、最悪の場合、名前を変更する必要があります)。名前を変更します)。
で、古いファイルのmodと多くをxmlfile
使用して新しいファイルを作成するには、ここに記載されているリーダー機能とここに記載されているライター機能を使用します。小さなファイルの場合、最初にリーダーを介してメモリ内にオブジェクトのツリーを構築し、次にライターを介してすべてを書き出すことができます。しかし、それは多くのメモリを消費する可能性があります。別の方法は、MSDNドキュメントで「プルプログラミングモデル」と呼ばれるようなインクリメンタル解析アプローチです。