XML操作

JavaでのXML操作はcastorを使用してできましたが、
.netの場合は、System.Xml.Serialization.XmlSerializerクラスを使用してできます。
(Compact framework2.0対応)
以下、手順

1.xmlに永続化するクラスを作成する。
 1−1.引数の無いコンストラクタを作成することが必須。

  例:タイトルと価格をフィールドにもつBookクラスをxmlに保存したい場合。
    public class Book
     {
         public String title;
         public decimal price;
         public Book()
         {
         }
     }
2.XmlSerializerクラスを使用し、永続化対象オブジェクトをXMLにシリアル化する。
            
// 永続化オブジェクトの生成
Book book = new Book();
book.price = 100;
book.title = "タイトル";

// XMLにBookクラスを書き込むという設定を行う
System.Xml.Serialization.XmlSerializer serializer = new XmlSerializer(typeof(Book));
            
// 
// 書き込み
//
System.IO.FileStream fs = new System.IO.FileStream("\\book.xml", System.IO.FileMode.Create);
serializer.Serialize(fs, book);
fs.Close();

実行結果(book.xml)の内容

<?xml version="1.0"?>
<Book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <price>100</price>
  <title>タイトル</title>
</Book>

…2008/01/07 以下、XMLからの読込み方法を追加

1.永続化するクラスを作成(書き込みと同じBookクラスを使用するため省略)
2.XmlSerializerクラスを使用し、XMLからクラスオブジェクトにデシリアル化する。

Book book = new Book();
book.title = "";
book.price = 0;

System.Xml.Serialization.XmlSerializer serializer = new XmlSerializer(typeof(Book));

// ファイルオープン
System.IO.StreamReader fs2 = new System.IO.StreamReader("\\book2.xml", System.Text.Encoding.GetEncoding(System.Text.Encoding.Default.WebName));

// 読込
book = (Book) serializer.Deserialize(fs2);
fs2.Close();
book2.xmlの内容
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<price>2100</price>
	<title>あ</title>
</Book>

結果、「price=2100, title=あ」とXMLからbookオブジェクトに値が設定されました。