トップ回答者
複数のXMLファイルを読み込んで、相互に結合した都合のいい体裁のファイルを出力したい。その場合の一時DBはどういったものが利用可能?

質問
-
読み込むXMLファイルの場所を指定するためのFolderBrowserDialogと、一つのコマンドボタンしかフォーム上にないWindowsアプリケーションです。
標題のとおりのことを達成したいのですが、現在は各XMLファイルごとに、StreamReaderのループで、項目間の区切りをタブで表して、1レコード1レコードを表示できる状況になっています。
各XMLファイルを一先ずテーブルのような場所へ格納し、これらを都合よく結合した上、その集団をEXCELか、タブ区切りテキストへ出力できればな、と考えています。
こういった時、アクセスやSQLserverといった外部のDBを利用しない場合、一般的にはどういった格納方法があるのでしょうか?
どなたかご紹介いただけませんでしょうか?
個々のXMLファイルで最低5個の項目を持っており、参照しやすい手順を希望としています。列名を指定して簡易に参照するような手立てができればベストです。
一次配列ArrayListの記事を読む限り、複数の項目を保持することに適さないような印象を持ちました。配列の使い方を十分に理解できていないのか、ハッシュテーブルというものの理解が足りないのか....
皆様がメモリ上にDBを展開する方法として、利用する常套手段を教えて頂けないでしょうか?
そういっった結合の機能は、Excel側・ACCESS側でやる、という意見が多ければ、それはそれで納得したいと思います。
- 編集済み saya24 2017年5月12日 12:59 誤記訂正
回答
-
> 各XMLファイルを一先ずテーブルのような場所へ格納し、これらを都合よく結合した上、
> その集団をEXCELか、タブ区切りテキストへ出力できればな、と考えています。「都合よく結合」というのはどういうことなんでしょう? そこをコードに落とせるレベルできちんと書いてもらえないと「テーブルのような場所」に何が適しているかはわからないのですが・・・
> 皆様がメモリ上にDBを展開する方法として、利用する常套手段を教えて頂けないでしょうか?
そこだけに回答すると自分が真っ先に頭に浮かぶのは DataSet / DataTable です。
xml ファイルから DataSet / DataTable を作成するとか、DataSet / DataTable から xml ファイルを作成するのは容易です。具体例は以下の記事を見てください。
XML ファイルの更新操作
http://surferonwww.info/BlogEngine/post/2010/09/27/Delete-insert-and-update-operations-of-XML-file.aspxただし、「都合よく結合」できるかどうかは、質問者さんが何をしたいのか分かりませんので分かりません。
- 回答としてマーク saya24 2017年5月13日 3:42
すべての返信
-
結局どんなデータ構造なのかよく分かりませんでしたが、単純な2次元の表であるなら、列をプロパティで表現したclassのList<T>を使えば良いんじゃないでしょうか。
というかXMLを読み込むのにStreamReader……? XDocumentなどのDOMを使った方が楽かも知れません。場合によってはXDocumentのまま最後まで通すこともできるでしょう。
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年5月15日 1:27
-
> 各XMLファイルを一先ずテーブルのような場所へ格納し、これらを都合よく結合した上、
> その集団をEXCELか、タブ区切りテキストへ出力できればな、と考えています。「都合よく結合」というのはどういうことなんでしょう? そこをコードに落とせるレベルできちんと書いてもらえないと「テーブルのような場所」に何が適しているかはわからないのですが・・・
> 皆様がメモリ上にDBを展開する方法として、利用する常套手段を教えて頂けないでしょうか?
そこだけに回答すると自分が真っ先に頭に浮かぶのは DataSet / DataTable です。
xml ファイルから DataSet / DataTable を作成するとか、DataSet / DataTable から xml ファイルを作成するのは容易です。具体例は以下の記事を見てください。
XML ファイルの更新操作
http://surferonwww.info/BlogEngine/post/2010/09/27/Delete-insert-and-update-operations-of-XML-file.aspxただし、「都合よく結合」できるかどうかは、質問者さんが何をしたいのか分かりませんので分かりません。
- 回答としてマーク saya24 2017年5月13日 3:42