teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

誤記

2019/04/07 22:47

投稿

JanTh1989
JanTh1989

スコア87

title CHANGED
File without changes
body CHANGED
@@ -125,25 +125,14 @@
125
125
  └C++
126
126
  ```
127
127
  # 問題点
128
- 編集後データを元のXMLファイルに反映」の処理が以下の観点で行き詰まっています。
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

情報不足

2019/04/07 22:47

投稿

JanTh1989
JanTh1989

スコア87

title CHANGED
File without changes
body CHANGED
@@ -1,11 +1,25 @@
1
1
  # 前提
2
- 以下のような動きを検討中です。
2
+ C#にて、以下のような動きのフォームアプリ+ライブラリ(DLL)を検討中です。
3
+ ①ファイルパスをユーザが任意に指定
4
+ ②ライブラリ(DLL)実行
3
- XML形式ファイルを読み込み(XDocument.Load())
5
+ XML形式ファイルを読み込み(XDocument.Load())
4
- 読み込みデータから一部抽出して規定の構造に変換(XDocumentクラス)
6
+ 読み込みデータから一部抽出して規定の構造に変換(XDocumentクラス)
5
7
   ⇒XPathによるデータ抽出+ループで構築
6
- 変換した構造のデータを表示(TreeView表示)
8
+ 変換した構造のデータを表示(TreeView表示)
7
- 表示しているデータをユーザ任意に編集
9
+ 表示しているデータをユーザ任意に編集
10
+ ⑦ライブラリ(DLL)実行
8
- 編集後データを元のXMLファイルに反映
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