XMLファイル読み込み

■前回出力したXMLファイルを読み込みます。(XNAのPC版でのみ使用が可能です、360環境ではコンパイルができませんでした)

まずは、以下の定義ができているのか確認してください。

using System.Text;
using System.Xml;

■プログラムは以下のとおりです。

public void LoadXML(string filename)
{
    XmlTextReader reader = new XmlTextReader(filename);

    mainData = null;
    while (reader.Read())
    {
        if (reader.NodeType == XmlNodeType.Element)
        {
            if( reader.LocalName == "Item" )
                 LoadItemXML(reader);
        }
    }
    reader.Close();
}

///<Item>内の処理
public void LoadItemXML(XmlTextReader reader)
{
    MainData tData = new MainData();
    while (reader.Read())
    {
        switch(reader.NodeType){
            case    XmlNodeType.EndElement:
                if (reader.LocalName == "Item" )
                    return;		//	</Item>処理
                break;
            case    XmlNodeType.Element:
                switch (reader.LocalName)
                {
                    case "Key":
                        tData.Key = reader.ReadElementString();
                        break;
                    case "Value":
                        tData.Value = reader.ReadElementContentAsInt();
                        break;
                }
            break;
        }
    }
    // tDataをmainDataに登録
}

(注意:「XnaContent」「Asset」に関しては、めんどくさかったので記述してないです。)

■ファイルがあるかのチェック
親切設計としては、ファイルがあるのか確認してから読み込みを開始した方が良いかも。

if (System.IO.File.Exists(filename))
{
    // ファイルが存在するからOKよ
}
else
{
    // ファイルが見つかりません NGです。
}