質問編集履歴
2
誤記
title
CHANGED
File without changes
|
body
CHANGED
@@ -125,25 +125,14 @@
|
|
125
125
|
└C++
|
126
126
|
```
|
127
127
|
# 問題点
|
128
|
-
「
|
128
|
+
「⑧編集後データを元のXMLファイルに反映」の処理が以下の観点で行き詰まっています。
|
129
|
-
|
129
|
+
・編集後データはSalesタグの情報は全く持っていない。
|
130
130
|
・元ファイル読み込みデータ(XDocument)は変換後に一旦破棄。
|
131
131
|
・変換が単純なタグデータ抽出ではなく、属性値をタグ名化したり、タグ値に該当する別ブロックデータを合体させたりと、構造が全然違う。
|
132
132
|
・タグ値だけでなく、TreeView項目(属性値のタグ名化のものも含む)も変更可。
|
133
133
|
|
134
|
-
|
134
|
+
ハッシュテーブルで・・・という案がチラッと挙がったのですが、私はハッシュなるものがあまり詳しくなく・・・。
|
135
|
-
①一旦変換後データを逆変換
|
136
|
-
⇒元ファイルのSalesタグのみ破棄したものに再変換となる。
|
137
|
-
②元ファイル再読込み
|
138
|
-
③変換対象の親タグをXPathで抽出
|
139
|
-
④抽出データの子要素全破棄
|
140
|
-
⑤子要素無しの抽出データに①の対象データを追加
|
141
|
-
例)
|
142
|
-
③で<EngineerMember Name="engineerMember1">抽出し、子要素を全破棄。
|
143
|
-
子要素に①の逆変換データName~Historyを追加
|
144
135
|
|
145
|
-
ハッシュテーブルで・・・という案もチラッと挙がったのですが、私はハッシュなるものがあまり詳しくなく・・・。
|
146
|
-
|
147
136
|
何か良い方法があれば、案をお教え頂ければと思います。
|
148
137
|
また、元ファイルの読み込みデータ(XDocumentクラス)の変換後破棄をやめれば、別案が可能などもあれば、そちらについても検討します。
|
149
138
|
|
1
情報不足
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,11 +1,25 @@
|
|
1
1
|
# 前提
|
2
|
-
以下のような動きを検討中です。
|
2
|
+
C#にて、以下のような動きのフォームアプリ+ライブラリ(DLL)を検討中です。
|
3
|
+
①ファイルパスをユーザが任意に指定
|
4
|
+
②ライブラリ(DLL)実行
|
3
|
-
|
5
|
+
③XML形式ファイルを読み込み(XDocument.Load())
|
4
|
-
|
6
|
+
④読み込みデータから一部抽出して規定の構造に変換(XDocumentクラス)
|
5
7
|
⇒XPathによるデータ抽出+ループで構築
|
6
|
-
|
8
|
+
⑤変換した構造のデータを表示(TreeView表示)
|
7
|
-
|
9
|
+
⑥表示しているデータをユーザ任意に編集
|
10
|
+
⑦ライブラリ(DLL)実行
|
8
|
-
|
11
|
+
⑧編集後データを元のXMLファイルに反映
|
12
|
+
フォームアプリで①②⑤⑥⑦。
|
13
|
+
ライブラリ(DLL)が③④⑧。
|
14
|
+
●ライブラリのインターフェース
|
15
|
+
```C#
|
16
|
+
// ②のファイル読み込み、変換のインターフェース関数
|
17
|
+
public long LoadFile(string filePath, out XDocument loadData,);
|
18
|
+
// ⑦のファイル更新のインターフェース関数
|
19
|
+
public long UpdataFile(string filePath, XDocument data);
|
20
|
+
|
21
|
+
// ※戻り値long型は、ファイルが無いなどのエラーコードを返します。
|
22
|
+
```
|
9
23
|
例)
|
10
24
|
●元XMLファイル
|
11
25
|
```XML
|
@@ -117,8 +131,9 @@
|
|
117
131
|
・変換が単純なタグデータ抽出ではなく、属性値をタグ名化したり、タグ値に該当する別ブロックデータを合体させたりと、構造が全然違う。
|
118
132
|
・タグ値だけでなく、TreeView項目(属性値のタグ名化のものも含む)も変更可。
|
119
133
|
|
120
|
-
現状は以下のような方法が出ていますが、処理が
|
134
|
+
現状は以下のような方法が出ていますが、処理が回りくどく感じ、実装が渋られます。
|
121
135
|
①一旦変換後データを逆変換
|
136
|
+
⇒元ファイルのSalesタグのみ破棄したものに再変換となる。
|
122
137
|
②元ファイル再読込み
|
123
138
|
③変換対象の親タグをXPathで抽出
|
124
139
|
④抽出データの子要素全破棄
|
@@ -134,5 +149,6 @@
|
|
134
149
|
|
135
150
|
どうかよろしくお願い致します。
|
136
151
|
# 補足
|
152
|
+
開発言語:C#
|
137
153
|
開発環境:VisualStudio2015 Professional
|
138
154
|
.NET:バージョン4.6
|