2014年7月1日火曜日

XML電文の解析、作成方法

XML電文のやり取りを行う方法。 Modelクラスを作ってシリアライズ、デシリアライズを行って、 パースエラーの例外を受信エラーとすればよい。
            model obj = new model();
            obj.id = 1;
            obj.name = "test";
            obj.param = new List();
            obj.param.Add(new data() { pos = 0, vol = 0 });
            obj.param.Add(new data() { pos = 1, vol = 1 });
            XmlSerializer serializer = new XmlSerializer(typeof(model));
            using(var fs = new FileStream(@"c:\temp\test.xml", FileMode.Create, FileAccess.Write))
            using(var sw = new StreamWriter(fs, Encoding.GetEncoding(932)))
            {
                serializer.Serialize(sw, obj);
            }
            using (StreamReader sr = new StreamReader(@"c:\temp\test.xml"))
            {
                model _model = (model)(serializer.Deserialize(sr));
            }
XML電文
<?xml version="1.0" encoding="shift_jis"?>
<model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <id>1</id>
  <name>test</name>
  <param>
    <data>
      <pos>0</pos>
      <vol>0</vol>
    </data>
    <data>
      <pos>1</pos>
      <vol>1</vol>
    </data>
  </param>
</model>

0 件のコメント:

Androider