C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: XMLファイルでのElementの追加について


(過去ログ 11 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■2637 / inTopicNo.1)  XMLファイルでのElementの追加について
  
□投稿者/ M.K (16回)-(2007/04/12(Thu) 19:42:27)

分類:[C# (Windows)] 

何時もお世話になっております、M.Kと申します。

開発環境は WinXP SP2 + VS2005 + C# です。

既存のXMLファイルに対してElementを追加(?)する方法がわからず悩んで
おります。

要求仕様としてはシステムの諸情報を保存するにあたり、旧来のINIファイル
への保存から下記の様に形だけでもXMLファイルへの保存に変更しようと考え
ています。

  [SECTION1]         <SECTION1>
  KEY1=VALUE1            <KEY1>VALUE1</KEY1>
  KEY2=VALUE2   →       <KEY2>VALUE2</KEY2>
  KEY3=VALUE3            <KEY3>VALUE3</KEY3>
                     </SECTION1>


  [SECTION1]         <SECTION1>
  KEY1=VALUE1            <KEY1>VALUE1</KEY1>
  KEY2=VALUE2   →       <KEY2>VALUE2</KEY2>
  KEY3=VALUE3            <KEY3>VALUE3</KEY3>
  KEY4=VALUE4            <KEY4>VALUE4</KEY4>  // ここだけ追記!
                     </SECTION1>

XmlWriterを使ってXMLファイルに1回だけ書き出す事はできたのですが、
INIファイルと同様に"KEY4=VALUE4"を追加したり"[SECTION2]"を追加する
事が出来ず、常に上書きの様な形で更新されてしまいます。

そもそもINI→XMLの発想が間違えてるのかも知れませんが、Elementを追加
する方法があれば教えて頂けると幸いです。

以上 宜しくお願い致します。

引用返信 編集キー/
■2639 / inTopicNo.2)  Re[1]: XMLファイルでのElementの追加について
□投稿者/ Hongliang (127回)-(2007/04/12(Thu) 20:02:13)
Hongliang さんの Web サイト
ファイルの観点でいくと、XML はテキストファイルなので挿入ってのは苦手です。
ですので、通常は上書きするものです。
ルート要素の関係上、追記(ファイル末尾に追加する)は意味がありませんし。
引用返信 編集キー/
■2641 / inTopicNo.3)  Re[1]: XMLファイルでのElementの追加について
□投稿者/ 渋木宏明(ひどり) (170回)-(2007/04/12(Thu) 20:48:22)
渋木宏明(ひどり) さんの Web サイト
> 既存のXMLファイルに対してElementを追加(?)する方法がわからず悩んで
> おります。

については既にコメントが付いている通りで、追記じゃ駄目なんで上書きしてください。

「XML だから」ではありません。「ファイル」つーのはそういうもんだからです。
.ini ファイルの場合「追記」で整合が取れる場合もありますが、途中への「挿入」なんかはできやしません)

> 要求仕様としてはシステムの諸情報を保存するにあたり、旧来のINIファイル
> への保存から下記の様に形だけでもXMLファイルへの保存に変更しようと考え
> ています。
>
> [SECTION1] <SECTION1>
> KEY1=VALUE1 <KEY1>VALUE1</KEY1>
> KEY2=VALUE2 → <KEY2>VALUE2</KEY2>
> KEY3=VALUE3 <KEY3>VALUE3</KEY3>
> </SECTION1>

いくら .ini からの移行だとしても、そのスキームじゃあいかにも使いくそーです。

せめて

<SECTION>
<Entry Key="KEY1">VALUE1</Entry>
<Entry Key="KEY2">VALUE1</Entry>
<Entry Key="KEY3">VALUE1</Entry>
</SECTION>

のようにしておいた方が、後々苦労しないで済むと思いますよ。

引用返信 編集キー/
■2663 / inTopicNo.4)  Re[2]: XMLファイルでのElementの追加について
□投稿者/ M.K (17回)-(2007/04/13(Fri) 10:55:47)
Hongliang さん、渋木宏明(ひどり)さん、レスありがとうございます。

やはりINIと同じような扱い方でXML形式に保存するのは無理があるようですね。

タイトルとは少し離れてしまうかも知れませんが、個々のアプリケーションの
情報を始め、システム全体に関わるような諸情報を手軽に保存しておきたい場合
.NET開発環境では一般的にどの様な手法が使われるのでしょうか?

ざっとネットで調べて見たところ、諸情報保存クラスを作成してシリアライズ
する方法や、VS2005の"設定"を使って保存する方法、ApplicationSettingsBase
を使って保存する方法など見つけましたが、.NET開発の経験が浅い為どの手法が
ベストなのか判断しにくい状況です。

そこで開発経験の豊富な皆さんの意見を参考にさせて頂きたいと思いますので、
引き続き宜しくお願い致します。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -