- PR -

C# 巨大なXMLファイルの一部を修正する方法

投稿者投稿内容
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2005-07-31 14:07
> XMLは結局の所テキストファイルです。
> テキストファイルに対して途中で文字を挿入したり削除したりという処理はできません。
> あくまで元ファイルから読み取り/別ファイルに書き込みという処理を行うだけです。

ご回答ありがとうございます。
既存のXMLファイルを一部修正して要素を挿入(削除)することが不可能であることが分かりました。

視点を変えての質問ですが、XmlTextReaderの位置が(テキストファイルの先頭から何バイト目)を指しているかを知るにはどうすれば良いでしょうか?
位置を覚えておいて、TextStreamやBinaryStreamで直接操作するのに使えることもあるかと思い質問します。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-08-02 08:22
引用:

位置を覚えておいて、TextStreamやBinaryStreamで直接操作する



xxxStream は、クラス内部に自前のバッファを持っている場合があるので、止めといたほうがいいかと。
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2005-08-02 10:27
> xxxStream は、クラス内部に自前のバッファを持っている場合があるので、
> 止めといたほうがいいかと。

ご回答ありがとうございます。
バッファの問題については、
直前にflushすれば大丈夫そうな気がするのですが
いかがでしょうか?

確かにXMLファイルの絶対位置を記憶しておいて、
後からテキスト(あるいはバイナリ)ファイルとして開きSeekする方法は
スマートで無い感じがします。
けれども、可能であればいざという時重宝するかと思い質問してみました。


スキルアップ/キャリアアップ(JOB@IT)