C#:
XML 다루기

방법:

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

class Program
{
     static void Main()
     {
        var xmlString = @"<bookstore>
                            <book>
                              <title lang=""en"">Head First C#</title>
                              <price>39.99</price>
                            </book>
                          </bookstore>";

        // 문자열을 XDocument로 파싱
        XDocument doc = XDocument.Parse(xmlString);

        // 새로운 책 추가
        doc.Element("bookstore").Add(
            new XElement("book",
                new XElement("title", "Learning XML", new XAttribute("lang", "en")),
                new XElement("price", 29.99)
            )
        );

        // 콘솔에 XML 작성
        Console.WriteLine(doc);

        // 문서 로드
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(xmlString);

        // 모든 가격 검색
        XmlNodeList prices = xmlDoc.GetElementsByTagName("price");
        foreach (XmlNode price in prices)
        {
            Console.WriteLine(price.InnerText);
        }
     }
}

// 샘플 출력:
// <bookstore>
//  <book>
//    <title lang="en">Head First C#</title>
//    <price>39.99</price>
//  </book>
//  <book>
//    <title lang="en">Learning XML</title>
//    <price>29.99</price>
//  </book>
// </bookstore>
// 39.99
// 29.99

심층 분석

XML은 90년대 후반부터 존재해왔으며, 기술 연대기로 치면 할아버지나 다름없습니다. 데이터의 이동성과 사람이 읽기 쉬움을 위해 고안되었습니다. JSON과 같은 대체재가 웹 맥락에서 그 뒤를 쫓고 있으며, 더 가볍고 다루기 쉬움을 선호하는 많은 사람들에게 주목받고 있습니다. 하지만 XML은 여전히 수많은 레거시 시스템과 일부 통신 프로토콜에서 자신의 자리를 지키고 있습니다. XML을 사용하면 구조를 검증할 수 있는 스키마와 태그 충돌을 피할 수 있는 네임스페이스 등, 기업용으로 준비된 성숙함이 느껴지는 기능을 얻을 수 있습니다.

C#에서 System.Xml.LinqSystem.Xml 네임스페이스는 XML을 다루는 두 가지 큰 수단입니다. LINQ to XML(XDocument, XElement)은 더 현대적이고 우아합니다 - 예제에서 그 마법을 보셨을 겁니다. XmlDocument은 DOM(Document Object Model) 접근 방식을 제공합니다 - 조금 구식이지만, 일부 사람들은 그 힘을 믿고 있습니다.

참고 자료