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つずつあります。
それらには、WriteNode
、WriteString
、WriteAttributes
、WriteStartElement
、および WriteEndElement
が含まれます。 他の例は WriteAttributes
と WriteStartElement
です。
これらの手順のいくつかは、開始と終了のペアを形成するために互いに組み合わせて使用されます。 たとえば、要素を書き込むには、最初に WriteStartElement
メソッドを使用する必要があります。その後、文字列を書き込んでから WriteEndElement
メソッドを呼び出す必要があります。
理解を深めるために、XmlWriter
クラスを使用して XML を記述する例を見てみましょう。
-
まず、次のライブラリをインポートする必要があります。
using System; using System.Text; using System.Xml; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks;
-
Main()
クラスで、XMLWriter
のオブジェクトを作成し、xW
という名前を付けます。 次に、XML ファイルのパスと名前を引数としてXMLWriter
オブジェクトに渡します。XmlWriter xW = XmlWriter.Create("D:/myarticle/xmlfilebyZeeshan.xml");
-
WriteStartDocument()
関数を使用して XML ファイルの作成を開始します。xW.WriteStartDocument();
-
WriteStartElement()
関数を使用して最初の要素の書き込みを開始します。WriteAttributeString("CGPA", "3.6")
とWriteString("Muhammad Zeeshan")
は、さまざまなデータ値を割り当てるために使用され、WriteEndElement()
が呼び出されると、要素は終了します。xW.WriteStartElement("First"); xW.WriteAttributeString("CGPA", "3.6"); xW.WriteString("Muhammad Zeeshan"); xW.WriteEndElement();
-
次に、ファイルを完成させるために、以下の関数を使用して 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();
-
すべてのデータの書き込みが終了したら、
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>
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