C# で XML ファイルの読み取りと解析
C# では、System.Xml
名前空間を使用して XML
ファイルを処理します。XML
ファイルを処理するためのさまざまなクラスとメソッドがあります。この名前空間を使用して、XML
ファイルの読み取り、解析、書き込みを行うことができます。
この記事では、XML
ファイルの読み取りと解析に使用されるさまざまなメソッドについて説明します。
XmlReader
クラスを使用して XML
ファイルを読み取り、解析する C# プログラム
C# の XmlReader
クラスは、XML
データにアクセスする効率的な方法を提供します。XmlReader.Read()
メソッドは、XML
ファイルの一番目のノードを読み取り、次に、while
ループを使用してファイル全体を読み取ります。
このメソッドを使用するための正しい構文は次のとおりです。
XmlReader VariableName = XmlReader.Create(@"filepath");
while (reader.Read()) {
// Action to perform repeatidly
}
プログラムで読み込んで解析した XML
ファイルは次のとおりです。このコードをコピーして新しいテキストファイルに貼り付け、.xml
として保存し、このファイルを使用して以下のプログラムを実行します。
<?xml version="1.0" encoding="utf-8"?>
<Students>
<Student>
</Student>
<Student>
<Name>Olivia</Name>
<Grade>A</Grade>
</Student>
<Student>
<Name>Laura</Name>
<Grade>A+</Grade>
</Student>
<Student>
<Name>Ben</Name>
<Grade>A-</Grade>
</Student>
<Student>
<Name>Henry</Name>
<Grade>B</Grade>
</Student>
<Student>
<Name>Monica</Name>
<Grade>B</Grade>
</Student>
</Students>
コード例:
using System;
using System.Xml;
namespace XMLReadAndParse {
class XMLReadandParse {
static void Main(string[] args) {
// Start with XmlReader object
// here, we try to setup Stream between the XML file nad xmlReader
using (XmlReader reader = XmlReader.Create(@"d:\Example.xml")) {
while (reader.Read()) {
if (reader.IsStartElement()) {
// return only when you have START tag
switch (reader.Name.ToString()) {
case "Name":
Console.WriteLine("The Name of the Student is " + reader.ReadString());
break;
case "Grade":
Console.WriteLine("The Grade of the Student is " + reader.ReadString());
break;
}
}
Console.WriteLine("");
}
}
Console.ReadKey();
}
}
}
ここでは、XmlReader
のオブジェクトを作成し、次に、Create()
メソッドを使用して、所定の XML
ファイルのリーダーストリームを作成しました。
次に、XmlReader.Read()
メソッドを使用して XML
ファイルを読み取りました。このメソッドは、作成されたストリームに XML
ステートメントが含まれているかどうかを示す bool
値を返します。
その後、XmlReader.IsStartElement()
メソッドを使用して開始要素があるかどうかを確認しました。XML
データには 2つの要素フィールドがあるため、switch
ステートメントを使用して、ReadString()
メソッドを使用して両方のフィールドからデータを読み取りました。
出力:
The Name of the Student is Olivia
The Grade of the Student is A
The Name of the Student is Laura
The Grade of the Student is A+
The Name of the Student is Ben
The Grade of the Student is A-
The Name of the Student is Henry
The Grade of the Student is B
The Name of the Student is Monica
The Grade of the Student is B