MENU

C# XMLを読込む方法

XMLは、データの保存や交換に広く使用されるフォーマットです。C#では、XMLを簡単に読み込んで処理するための強力なツールが用意されています。この記事では、C#でXMLを読み込む基本的な方法について、初心者にも分かりやすく解説します。

目次

XMLの読み込み方法

C#でXMLを読み込むには、主に以下の3つの方法があります:

  1. XmlReader クラス
  2. XmlDocument クラス
  3. LINQ to XML

それぞれの方法について、具体的な例を見ていきましょう。

1. XmlReader クラスを使用する方法

XmlReaderは、XMLを前から順に読み込む高速な方法を提供します。メモリ使用量が少ないため、大きなXMLファイルの処理に適しています。

using System;
using System.Xml;

class Program
{
    static void Main()
    {
        string xmlString = @"
        <bookstore>
            <book>
                <title>C#プログラミング入門</title>
                <author>山田太郎</author>
                <price>2500</price>
            </book>
            <book>
                <title>XMLデータ処理技法</title>
                <author>鈴木花子</author>
                <price>3000</price>
            </book>
        </bookstore>";

        using (XmlReader reader = XmlReader.Create(new System.IO.StringReader(xmlString)))
        {
            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                        case "title":
                            if (reader.Read())
                                Console.WriteLine($"タイトル: {reader.Value}");
                            break;
                        case "author":
                            if (reader.Read())
                                Console.WriteLine($"著者: {reader.Value}");
                            break;
                        case "price":
                            if (reader.Read())
                                Console.WriteLine($"価格: {reader.Value}円");
                            break;
                    }
                }
            }
        }
    }
}

このコードでは、XmlReaderを使用してXML文字列を読み込み、各要素の値を出力しています。

2. XmlDocument クラスを使用する方法

XmlDocumentは、XMLをメモリ上にツリー構造で読み込み、ノードの追加・削除・変更が可能です。小〜中規模のXMLの処理に適しています。

using System;
using System.Xml;

class Program
{
    static void Main()
    {
        string xmlString = @"
        <bookstore>
            <book>
                <title>C#プログラミング入門</title>
                <author>山田太郎</author>
                <price>2500</price>
            </book>
            <book>
                <title>XMLデータ処理技法</title>
                <author>鈴木花子</author>
                <price>3000</price>
            </book>
        </bookstore>";

        XmlDocument doc = new XmlDocument();
        doc.LoadXml(xmlString);

        XmlNodeList books = doc.GetElementsByTagName("book");
        foreach (XmlNode book in books)
        {
            Console.WriteLine($"タイトル: {book["title"].InnerText}");
            Console.WriteLine($"著者: {book["author"].InnerText}");
            Console.WriteLine($"価格: {book["price"].InnerText}円");
            Console.WriteLine();
        }
    }
}

このコードでは、XmlDocumentを使用してXML文字列を読み込み、各書籍の情報を出力しています。

3. LINQ to XMLを使用する方法

LINQ to XMLは、XMLの読み込みと操作を簡潔に行える方法を提供します。最も柔軟で使いやすい方法の一つです。

using System;
using System.Xml.Linq;
using System.Linq;

class Program
{
    static void Main()
    {
        string xmlString = @"
        <bookstore>
            <book>
                <title>C#プログラミング入門</title>
                <author>山田太郎</author>
                <price>2500</price>
            </book>
            <book>
                <title>XMLデータ処理技法</title>
                <author>鈴木花子</author>
                <price>3000</price>
            </book>
        </bookstore>";

        XDocument doc = XDocument.Parse(xmlString);

        var books = from book in doc.Descendants("book")
                    select new
                    {
                        Title = book.Element("title").Value,
                        Author = book.Element("author").Value,
                        Price = int.Parse(book.Element("price").Value)
                    };

        foreach (var book in books)
        {
            Console.WriteLine($"タイトル: {book.Title}");
            Console.WriteLine($"著者: {book.Author}");
            Console.WriteLine($"価格: {book.Price}円");
            Console.WriteLine();
        }
    }
}

このコードでは、LINQ to XMLを使用してXML文字列を読み込み、LINQクエリを使って各書籍の情報を取得し出力しています。

まとめ

C#でXMLを読み込む方法には、主にXmlReaderXmlDocument、LINQ to XMLの3つがあります。それぞれに特徴があり、用途や扱うXMLのサイズによって適切な方法を選択することが重要です。初心者の方は、まずLINQ to XMLから始めるのがおすすめです。シンプルで直感的な構文を持ち、多くの場合で十分な機能を提供してくれます。

XMLの読み込みは、データ処理やアプリケーション開発において重要なスキルです。これらの方法を適切に使い分けることで、効率的にXMLデータを扱うことができます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次