XMLの取り扱い
XMLの扱いにいつまでたっても慣れないので、メモを残していきます。
using System.Xml;
XmlDocument doc = new XmlDocument();
doc.Load("../../XMLFile1.xml");
XMLデータがファイルではなくて、文字列になっている場合は、LoadXMLメソッドを使う。
string xml = @"(ここにXMLのテキスト)";
XmlDocument doc.LoadXml(xml);
VisualStudio2013には便利な機能があって、XMLをコピーするだけでクラスを作ってくれます。
まずXMLファイルを開いて全選択してコピーします。その後、クラスファイルを開いて、VisualStudioの編集メニューから「形式を選択して貼り付け」→「XMLをクラスとして貼り付ける」を選ぶと、クラスのできあがり。
自動で作られるクラスはちょっと古めかしい感じだけど(プロパティに { get; set } を使ってないとか)、自動で作ってくれるのはありがたい。
XmlSerializer serializer = new XmlSerializer(typeof(GET_STATS_LIST));
XmlReader reader = XmlReader.Create("../../XMLFile1.xml");
GET_STATS_LIST obj = (GET_STATS_LIST)serializer.Deserialize(reader);
System.Diagnostics.Debug.WriteLine("count= "+ obj.DATALIST_INF.NUMBER.ToString());
続く
XMLファイルをオブジェクトに読み込む手順
シリアライズとかは面倒そうなのでスルーして、XDocumentを使う方法。あとはツリー構造をたどってXElementオブジェクトを見ていく。using System.Xml;
XmlDocument doc = new XmlDocument();
doc.Load("../../XMLFile1.xml");
XML文字列をオブジェクトに読み込む手順
XMLデータがファイルではなくて、文字列になっている場合は、LoadXMLメソッドを使う。
string xml = @"(ここにXMLのテキスト)";
XmlDocument doc.LoadXml(xml);
シリアライズをするときに感じる面倒くささがまったくなくて、実に気持ちよくXMLを読み込める。XmlElementは素敵。
XMLに1対1に対応したクラスを作る手順
XmlElementがあれば要らないような気がするけど、今回調べてわかったのでメモしておきます。VisualStudio2013には便利な機能があって、XMLをコピーするだけでクラスを作ってくれます。
まずXMLファイルを開いて全選択してコピーします。その後、クラスファイルを開いて、VisualStudioの編集メニューから「形式を選択して貼り付け」→「XMLをクラスとして貼り付ける」を選ぶと、クラスのできあがり。
自動で作られるクラスはちょっと古めかしい感じだけど(プロパティに { get; set } を使ってないとか)、自動で作ってくれるのはありがたい。
XMLファイルを1対1のクラスオブジェクトに読み込む手順
デシリアライズですか。読み込みがうまくけば、あとはプロパティを見ていくだけでよいので便利といえば便利。しかし、XMLファイルの形式が少しでも変わったらエラーになるのだろうし、便利と引き換えにいろいろデメリットもあるわけだ。XmlSerializer serializer = new XmlSerializer(typeof(GET_STATS_LIST));
XmlReader reader = XmlReader.Create("../../XMLFile1.xml");
GET_STATS_LIST obj = (GET_STATS_LIST)serializer.Deserialize(reader);
System.Diagnostics.Debug.WriteLine("count= "+ obj.DATALIST_INF.NUMBER.ToString());
続く
コメント
コメントを投稿