質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

9823閲覧

C# xmlから配列に戻す

Lopn_

総合スコア50

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2017/02/02 08:26

編集2017/02/02 08:29

xml

1<?xml version="1.0" encoding="UTF-8"?> 2<ArrayOfAnyType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 3 <anyType xsi:type="array"> 4 <type1> 5 <string>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</string> 6 </type1> 7 <type2> 8 <string>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy</string> 9 </type2> 10 </anyType> 11</ArrayOfAnyType>

C#

1 2前略... 3 4 public class array 5 { 6 public string[] type1; 7 public string[] type2; 8 9 public array() 10 { 11 type1 = new string[] { } 12 type2 = new string[] { } 13 } 14 15 public array(string[] t1, string[] t2) 16 { 17 type1 = t1; 18 type2 = t2; 19 } 20 } 21 22 public class MainClass 23 { 24 public static void Main(string[] args) 25 { 26 ArrayList arr = new ArrayList(); 27 arr.Add( 28 new array( 29 new string[] { "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, 30 new string[] { "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" } 31 ) 32 ); 33 34 Type[] et = new Type[] { typeof(array) }; 35 36 XmlSerializer serializer = new XmlSerializer(typeof(ArrayList), et); 37 StreamWriter stwrite = new StreamWriter(@"C:\sample.xml", false, new UTF8Encoding(false)); 38 serializer.Serialize(stwrite, arr); 39 stwrite.Close(); 40 } 41 }

array(string[], string[])のような配列をxmlに保存できたのですが、その保存されたxmlから元の状態に戻すにはどのように書いたらいいのでしょうか
xmlにするのに参考にしたサイトはこちらです。
http://dobon.net/vb/dotnet/file/xmlserializer2.html

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。

シリアライズの逆を行いたい場合はデシリアライズを行ってください。

http://dobon.net/vb/dotnet/file/xmlserializer.html

csharp

1Type[] et = new Type[] { typeof(array) }; 2XmlSerializer serializer = new XmlSerializer(typeof(ArrayList), et); 3using (StreamReader streader = new StreamReader(@"C:\sample.xml", new UTF8Encoding(false))) 4{ 5 var arr = serializer.Deserialize(streader); 6 return arr; 7}

投稿2017/02/02 08:30

編集2017/02/02 08:41
Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lopn_

2017/02/02 08:33

この方法を使うと、InvalidOperationExceptionが出てしまうんです...
Tak1wa

2017/02/02 08:42

なぜでしょう。コード追加してみました。 これでもダメであれば環境など追加の情報を記載してください。
Lopn_

2017/02/02 08:50

できました! new XmlSerializer(typeof(array) にしてたのが原因ぽかったです ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問