xmlSerializerによるXMLの読み書き

xmlの読み書きにはXMLSerializerを使用します。シリアライズとは永続化の意味で、ヒープメモリ上に存在するオブジェクトをファイルやデータベースなどに保存する事を意味します。また、保存したデータからヒープメモリ上にオブジェクトを生成することをデシリアライズと言います。難しいように聞こえますが、単にXMLファイルの読み込みと保存という意味で考えて問題ないと思います。

この考え方を発展させていくと、すべてのオブジェクトはXMLなどに保存することができるとか、一旦ファイルに保存して読み込みなおすことでオブジェクトのコピーが作成できるとか、色々と応用が利きます。

以下がサンプルコードです。
XmlSerializerを使用してtest.xmlを読み込み、内容を書き換えて、test2.xmlに保存しています。


using System;
using System.Text;
using System.Xml.Serialization;
using System.IO;

namespace XMLSerializer
{
class Program
{
static void Main(string[] args)
{

XmlSerializer serializer = new XmlSerializer(typeof(item));

item item = null;

StreamReader sr = new StreamReader("test.xml", Encoding.UTF8);
item = (item)serializer.Deserialize(sr);
sr.Close();

item.name = "jiro Kobe";
item.job = "programmer";

StreamWriter sw = new StreamWriter("test2.xml", false, Encoding.UTF8);
serializer.Serialize(sw, item);
sw.Close();

}
}
}

■test.xml

taro kobe
manager

■test2.xml
xml version="1.0" encoding="utf-8"

jiro Kobe
programmer