XML Save&Load

XML ファイルの作成と入力の基礎です。

前田稔(Maeda Minoru)の超初心者のプログラム入門

XML ファイルの作成

  1. XML(Extensible Markup Language)形式ファイルは世界標準となっている「簡単なデータの保存/交換」に便利な規格です。
    現在では、アプリケーションに関する情報は XMLファイルとして保存することが推奨されています。
    そこで簡単な情報を XML ファイルに保存するプログラムを紹介します。
    XML の詳細はC#の XML Save&Load C# を参照して下さい。
  2. コンソールモードで XML FILE("c:\\tmp\\config.xml")を作成するソースコードです。
    /*★ XML Save Test     前田 稔 ★*/
    #using <System.dll>
    #using <System.Xml.dll>
    
    using namespace System;
    using namespace System::IO;
    using namespace System::Text;
    using namespace System::Xml::Serialization;
    
    //XMLファイルに保存するオブジェクトのためのクラス
    public ref class SampleClass
    {
      public:
        int     Number;
        String^ Message;
    };
    
    int main()
    {
        SampleClass^  cls = gcnew SampleClass();
        cls->Number = 123;
        cls->Message = "テストです。";
    
        //XmlSerializerオブジェクトを作成
        //書き込むオブジェクトの型を指定する
        XmlSerializer^ serializer = gcnew XmlSerializer(SampleClass::typeid);
        //ファイルを開く
        FileStream^ fs = gcnew FileStream("c:\\tmp\\config.xml", FileMode::Create);
        //シリアル化し、XMLファイルに保存する
        serializer->Serialize(fs, cls);
        //閉じる
        fs->Close();
        return 0;
    }
    
  3. 作成された XML FILE("c:\\tmp\\config.xml")の内容です。
    <?xml version="1.0"?>
    <SampleClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Number>123</Number>
      <Message>テストです。</Message>
    </SampleClass>
    
  4. アプリケーションの情報は、構造体(class SampleClass)で定義して、XML FILE に記録します。
        SampleClass^  cls = gcnew SampleClass();
        cls->Number = 123;
        cls->Message = "テストです。";
        
  5. 構造体はシリアライズされて、ファイルに転送されます。
        XmlSerializer^ serializer = gcnew XmlSerializer(SampleClass::typeid);
        FileStream^ fs = gcnew FileStream("c:\\tmp\\config.xml", FileMode::Create);
        serializer->Serialize(fs, cls);
        

XML ファイルの入力

  1. XML FILE("c:\\tmp\\config.xml")を入力して、構造体(class SampleClass)を復元するソースコードです。
    /*★ XML Load Test     前田 稔 ★*/
    #using <System.dll>
    #using <System.Xml.dll>
    
    using namespace System;
    using namespace System::IO;
    using namespace System::Text;
    using namespace System::Xml::Serialization;
    
    //XMLファイルに保存するオブジェクトのためのクラス
    public ref class SampleClass
    {
      public:
        int     Number;
        String^ Message;
    };
    
    int main()
    {
        //XmlSerializerオブジェクトを作成
        XmlSerializer^ serializer = gcnew XmlSerializer(SampleClass::typeid);
        //ファイルを開く
        FileStream^ fs = gcnew FileStream("c:\\tmp\\config.xml", FileMode::Open);
        //XMLファイルから読み込み、逆シリアル化する
        SampleClass^  obj = (SampleClass^)serializer->Deserialize(fs);
        fs->Close();
        Console::WriteLine(obj->Number + " : " + obj->Message);
        return 0;
    }
    
  2. XML FILE に保存した構造体(class SampleClass)を復元します。
    XML FILE から読み込むときは、逆シリアル化します。
        XmlSerializer^ serializer = gcnew XmlSerializer(SampleClass::typeid);
        FileStream^ fs = gcnew FileStream("c:\\tmp\\config.xml", FileMode::Open);
        SampleClass^  obj = (SampleClass^)serializer->Deserialize(fs);
        
  3. 構造体が復元されたことを確かめるために、印字してみました。
        Console::WriteLine(obj->Number + " : " + obj->Message);
        
  4. C# でも同様のプログラムを作成しています。
    XML Save&Load を参照して下さい。

超初心者のプログラム入門(C/C++)