Rust:
Trabalhando com XML

Como fazer:

Em Rust, você pode manipular XML com crates como xml-rs. Instale adicionando xml-rs = "0.8" ao seu Cargo.toml. Aqui está como analisar um XML simples:

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!("Início: {}", name);
            }
            Ok(XmlEvent::Characters(data)) => {
                println!("Texto: {}", data);
            }
            Ok(XmlEvent::EndElement { name }) => {
                println!("Fim: {}", name);
            }
            Err(e) => {
                println!("Erro: {}", e);
            }
            _ => {}
        }
    }
}

Saída:

Início: book
Início: title
Texto: Rust in Action
Fim: title
Início: author
Texto: Tim McNamara
Fim: author
Início: year
Texto: 2021
Fim: year
Fim: book

Este código lê fluxos de XML, lidando com elementos de início e fim, além de dados de texto, registrando cada etapa.

Aprofundando:

O XML é um veterano nos anos tecnológicos, criado para a web no final dos anos 90. Seu design promove a legibilidade (tanto para máquinas quanto para humanos) e dados auto-descritivos extensos.

Alternativas? Claro, o JSON é a escolha moderna para APIs web, mais leve e menos ruidoso. Enquanto isso, o YAML conquistou fãs para configurações, com seu layout limpo. Mas o XML não vai desaparecer tão cedo—vastas infraestruturas são construídas em sua base.

Por baixo do capô, a análise de XML em Rust se apoia em padrões de iteradores, mantendo o uso de memória baixo e o desempenho afiado. Você encontrará crates como serde-xml-rs para uma experiência mais próxima do serde—uma bênção para aqueles acostumados com o manuseio do JSON.

Veja Também:

Para mais sobre Rust e XML: