C#에서 파일에 XML 쓰기

Muhammad Zeeshan 2023년10월12일
  1. XML 형식
  2. C#에서 XmlWriter 클래스를 사용하여 파일에 XML 쓰기
C#에서 파일에 XML 쓰기

이 자습서에서는 C# 프로그래밍 언어를 활용하여 XML을 파일에 넣는 방법을 알려줍니다. 먼저 XML 파일의 형식을 살펴보고 파일이 어떻게 구성되어 있는지 확인합니다.

XML 형식

XML은 Extensible Markup Language의 약자로 HTML과 유사한 마크업 언어이지만 객체를 정의하기 위해 태그를 사용한다는 점에서 구별된다. HTML 및 XML 문서 모두에 대한 애플리케이션 프로그래밍 인터페이스인 XML 문서 개체 모델(DOM)은 XML 파일 형식의 기반입니다.

XML 문서 구성 요소에 액세스하고 변경하는 표준 메커니즘은 XML DOM(문서 개체 모델)에 의해 정의됩니다. DOM 트리를 통해 문서의 모든 구성 요소에 액세스하는 데 사용할 수 있는 XML 문서의 트리 구조 표현을 만듭니다.

XML 트리를 사용하면 이전에 생성된 요소를 수정하거나 삭제하고 새 구성 요소를 만들 수 있습니다. 노드는 XML 문서를 구성하는 각 요소의 이름입니다.

C#에서 XmlWriter 클래스를 사용하여 파일에 XML 쓰기

XmlWriter 클래스는 XML 파일에 텍스트를 추가하는 역할을 하며 필요한 기능을 가지고 있습니다. XmlTextWriterXmlNodeWriter 클래스가 기능을 파생시키는 추상 기반 클래스입니다.

여기에는 XML 문서를 만드는 데 사용할 수 있는 다양한 메서드와 특성이 있습니다. 이 클래스에는 XML 문서에서 찾을 수 있는 각 종류의 항목에 대해 하나씩 많은 Writer 메서드가 있습니다.

그 중 일부는 WriteNode, WriteString, WriteAttributes, WriteStartElementWriteEndElement를 포함합니다. 다른 예로는 WriteAttributesWriteStartElement가 있습니다.

이러한 절차 중 일부는 시작 및 종료 쌍을 형성하기 위해 서로 함께 사용됩니다. 예를 들어 요소를 작성하려면 먼저 WriteStartElement 메서드를 사용한 다음 문자열을 작성한 다음 WriteEndElement 메서드를 호출해야 합니다.

이해를 돕기 위해 XmlWriter 클래스를 사용하여 XML을 작성하는 예를 살펴보겠습니다.

  1. 시작하려면 다음 라이브러리를 가져와야 합니다.

    using System;
    using System.Text;
    using System.Xml;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    
  2. Main() 클래스에서 XMLWriter 객체를 구성하고 xW라는 이름을 지정합니다. 그런 다음 XML 파일의 경로와 이름을 XMLWriter 개체에 대한 인수로 제공합니다.

    XmlWriter xW = XmlWriter.Create("D:/myarticle/xmlfilebyZeeshan.xml");
    
  3. WriteStartDocument() 기능을 사용하여 XML 파일 생성을 시작합니다.

    xW.WriteStartDocument();
    
  4. WriteStartElement() 함수를 사용하여 첫 번째 요소 작성을 시작합니다. WriteAttributeString("CGPA", "3.6")WriteString("Muhammad Zeeshan")은 다양한 데이터 값을 할당하는 데 사용되며 WriteEndElement()가 호출되면 요소가 종료됩니다.

    xW.WriteStartElement("First");
    xW.WriteAttributeString("CGPA", "3.6");
    xW.WriteString("Muhammad Zeeshan");
    xW.WriteEndElement();
    
  5. 그런 다음 파일을 완성하기 위해 아래 함수를 사용하여 두 번째 및 세 번째 요소를 작성합니다.

    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();
    
  6. 모든 데이터 쓰기가 끝나면 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>
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

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

관련 문장 - Csharp XML

관련 문장 - Csharp File