C# で XML をファイルに書き込む

Muhammad Zeeshan 2023年10月12日
  1. XML 形式
  2. C#XmlWriter クラスを使用して XML をファイルに書き込む
C# で XML をファイルに書き込む

このチュートリアルでは、C# プログラミング言語を使用して XML をファイルに入れる方法を説明します。 まず、XML ファイルの形式を見て、どのように構成されているかを確認します。

XML 形式

Extensible Markup Language の略である XML は、HTML に似たマークアップ言語ですが、タグを使用してオブジェクトを定義するという点で区別されます。 XML ドキュメント オブジェクト モデル (DOM) は、HTML ドキュメントと XML ドキュメントの両方のアプリケーション プログラミング インターフェイスであり、XML ファイル形式の基盤です。

XML ドキュメント コンポーネントにアクセスして変更するための標準メカニズムは、XML ドキュメント オブジェクト モデル (DOM) によって定義されます。 XML ドキュメントのツリー構造表現を作成します。これを使用して、DOM ツリーを介してドキュメントのすべてのコンポーネントにアクセスできます。

XML ツリーを使用すると、以前に生成された要素を変更または削除したり、新しいコンポーネントを作成したりできます。 ノードは、XML ドキュメントを構成する各要素の名前です。

C#XmlWriter クラスを使用して XML をファイルに書き込む

XmlWriter クラスは、XML ファイルにテキストを追加する役割を担い、必要な機能を備えています。 これは、XmlTextWriter および XmlNodeWriter クラスがその機能を派生させる抽象基本クラスです。

XML ドキュメントの作成に使用できるさまざまなメソッドと属性があります。 このクラスには多くの Writer メソッドがあり、XML ドキュメント内で見つかるアイテムの種類ごとに 1つずつあります。

それらには、WriteNodeWriteStringWriteAttributesWriteStartElement、および WriteEndElement が含まれます。 他の例は WriteAttributesWriteStartElement です。

これらの手順のいくつかは、開始と終了のペアを形成するために互いに組み合わせて使用されます。 たとえば、要素を書き込むには、最初に WriteStartElement メソッドを使用する必要があります。その後、文字列を書き込んでから WriteEndElement メソッドを呼び出す必要があります。

理解を深めるために、XmlWriter クラスを使用して XML を記述する例を見てみましょう。

  1. まず、次のライブラリをインポートする必要があります。

    using System;
    using System.Text;
    using System.Xml;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    
  2. Main() クラスで、XMLWriter のオブジェクトを作成し、xW という名前を付けます。 次に、XML ファイルのパスと名前を引数として XMLWriter オブジェクトに渡します。

    XmlWriter xW = XmlWriter.Create("D:/myarticle/xmlfilebyZeeshan.xml");
    
  3. WriteStartDocument() 関数を使用して XML ファイルの作成を開始します。

    xW.WriteStartDocument();
    
  4. WriteStartElement() 関数を使用して最初の要素の書き込みを開始します。 WriteAttributeString("CGPA", "3.6")WriteString("Muhammad Zeeshan") は、さまざまなデータ値を割り当てるために使用され、WriteEndElement() が呼び出されると、要素は終了します。

    xW.WriteStartElement("First");
    xW.WriteAttributeString("CGPA", "3.6");
    xW.WriteString("Muhammad Zeeshan");
    xW.WriteEndElement();
    
  5. 次に、ファイルを完成させるために、以下の関数を使用して 2 番目と 3 番目の要素を書き込みます。

    xW.WriteStartElement("Second");
    xW.WriteAttributeString("CGPA", "3.9");
    xW.WriteString("Haseeb ur Rehman");
    xW.WriteEndElement();
    
    xW.WriteStartElement("Third");
    xW.WriteAttributeString("CGPA", "3.8");
    xW.WriteString("Bawa Younus");
    xW.WriteEndElement();
    
  6. すべてのデータの書き込みが終了したら、WriteEndDocument() 関数を使用してドキュメントを終了し、Close() 関数を使用して XMLWriter を閉じます。

    xW.WriteEndDocument();
    xW.Close();
    

完全なソース コード

using System;
using System.Text;
using System.Xml;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace writexmlbyZeeshan {
  class Program {
    static void Main(string[] args) {
      XmlWriter xW = XmlWriter.Create("D:/myarticle/xmlfilebyZeeshan.xml");

      xW.WriteStartDocument();
      xW.WriteStartElement("Students");

      xW.WriteStartElement("First");
      xW.WriteAttributeString("CGPA", "3.6");
      xW.WriteString("Muhammad Zeeshan");
      xW.WriteEndElement();

      xW.WriteStartElement("Second");
      xW.WriteAttributeString("CGPA", "3.9");
      xW.WriteString("Haseeb ur Rehman");
      xW.WriteEndElement();

      xW.WriteStartElement("Third");
      xW.WriteAttributeString("CGPA", "3.8");
      xW.WriteString("Bawa Younus");
      xW.WriteEndElement();

      xW.WriteEndDocument();
      xW.Close();
    }
  }
}

出力:

<Students>
<First CGPA="3.6">Muhammad Zeeshan</First>
<Second CGPA="3.9">Haseeb ur Rehman</Second>
<Third CGPA="3.8">Bawa Younus</Third>
</Students>
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

関連記事 - Csharp XML

関連記事 - Csharp File