[XML.NET] 17. XmlReader 개체로 데이터 분석(노드 형식 알아내기)

 XmlReader 개체는 정방향으로 XML 데이터 소스를 분석하기 위함입니다.

 구조화되어 있는 XML 데이터 소스를 정방향으로 읽기 작업을 하여 원하는 프로그램 데이터로 가공하기 위해서는 현재 위치의 노드가 어떠한 형식인지 알 수 있어야 합니다. 그리고 현재 노드 형식에 따라 요소 읽기와 특성 읽기, 값 읽기 등을 할 수 있어야 할 것입니다.

 XmlReader 개체는 정방향으로만 읽기 작업할 수 있습니다. 따라서 XmlReader 개체로 Read 메서드를 호출하면 다음 노드로 위치가 변합니다. XML 데이터는 구조적인 데이터이므로 현재 분석한 노드가 무엇인지에 따라 처리를 다르게 해야 할 때가 많습니다.

 XmlReader 클래스에서는 개체의 멤버 속성으로 NodeType을 제공하고 있어 현재 위치의 노드가 어떠한 형식인지 쉽게 확인할 수 있습니다.

using System;
using System.Xml;

namespace 예제_3._4_현재_위치_노드의_형식_알아내기
{
    class Program
    {
        static void Main(string[] args)
        {
            XmlReader reader = XmlReader.Create("data.xml");
            reader.MoveToContent();

            while (reader.Read())
            {
                WriteNodeInfo(reader);
            }
        }
        private static void WriteNodeInfo(XmlReader reader)
        {
            Console.WriteLine("노드 형식:{0}",reader.NodeType);
            Console.WriteLine("  ▷ 노드 이름:{0}", reader.Name);                   
            Console.WriteLine("  ▷ 노드 데이터:{0}", reader.Value);            
        }
    }
}