Rust:
XML 다루기

어떻게:

Rust에서는 xml-rs와 같은 크레이트로 XML을 다룰 수 있습니다. Cargo.tomlxml-rs = "0.8"을 추가하여 설치하세요. 다음은 간단한 XML을 파싱하는 방법입니다:

extern crate xml;

use xml::reader::{EventReader, XmlEvent};

fn main() {
    let xml_data = r#"<book category="fiction">
    <title>Rust in Action</title>
    <author>Tim McNamara</author>
    <year>2021</year>
</book>"#;

    let parser = EventReader::from_str(xml_data);
    for e in parser {
        match e {
            Ok(XmlEvent::StartElement { name, .. }) => {
                println!("시작: {}", name);
            }
            Ok(XmlEvent::Characters(data)) => {
                println!("텍스트: {}", data);
            }
            Ok(XmlEvent::EndElement { name }) => {
                println!("종료: {}", name);
            }
            Err(e) => {
                println!("오류: {}", e);
            }
            _ => {}
        }
    }
}

출력:

시작: book
시작: title
텍스트: Rust in Action
종료: title
시작: author
텍스트: Tim McNamara
종료: author
시작: year
텍스트: 2021
종료: year
종료: book

이 코드는 XML을 스트림 읽기로 처리하며, 시작 및 종료 요소와 텍스트 데이터를 처리하고 각 단계를 기록합니다.

심층 탐구:

XML은 기술 분야에서 선배로, 90년대 후반 웹을 위해 만들어졌습니다. 그 설계는 가독성(기계와 인간 모두를 위해)과 방대한 자기 설명 데이터를 촉진합니다.

대안이 있나요? 물론입니다, JSON은 현대의 웹 API를 위한 가벼우면서도 소음이 적은 선택입니다. 한편 YAML은 깔끔한 레이아웃으로 설정을 위한 팬층을 확보했습니다. 하지만 XML은 곧 사라지지 않을 것입니다—그것의 기반 위에 건설된 거대한 인프라가 있으니까요.

내부적으로, Rust의 XML 파싱은 이터레이터 패턴에 의존하여 메모리 사용량을 낮추고 성능을 높입니다. JSON 처리에 익숙한 이들에게는 serde-xml-rs와 같은 크레이트가 serde 같은 경험을 제공하는 특전일 것입니다.

참고 자료:

Rust와 XML에 대한 자세한 정보는: