C# XML 파일 읽기 및 구문 분석

Minahil Noor 2024년2월16일
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 데이터에 두 개의 요소 필드가 있기 때문에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