Rust:
Att arbeta med XML

Hur man gör:

I Rust kan du hantera XML med crates som xml-rs. Installera genom att lägga till xml-rs = "0.8" i din Cargo.toml. Så här tolkar du enkel 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);
    för e i parser {
        match e {
            Ok(XmlEvent::StartElement { name, .. }) => {
                println!("Start: {}", name);
            }
            Ok(XmlEvent::Characters(data)) => {
                println!("Text: {}", data);
            }
            Ok(XmlEvent::EndElement { name }) => {
                println!("Slut: {}", name);
            }
            Err(e) => {
                println!("Fel: {}", e);
            }
            _ => {}
        }
    }
}

Output:

Start: book
Start: title
Text: Rust in Action
Slut: title
Start: author
Text: Tim McNamara
Slut: author
Start: year
Text: 2021
Slut: year
Slut: book

Denna kod ström-läser XML, hanterar start- och slutlement samt textdata, och loggar varje steg.

Fördjupning:

XML är senior inom teknikår, skapad för webben i slutet av 90-talet. Dess design främjar läsbarhet (för både maskiner och människor) och omfattande självbeskrivande data.

Alternativ? Säkert, JSON är det moderna valet för webb-API:er, lättare och mindre bullrigt. Samtidigt har YAML fått fans för konfigurationer, med sin rena layout. Men XML kommer inte försvinna snart – omfattande infrastrukturer är byggda på dess rygg.

Under huven lutar sig Rusts XML-tolkning på iterator-mönster, håller minnesanvändningen låg och prestandan vass. Du kommer att hitta crates som serde-xml-rs för en mer serde-liknande upplevelse – en fördel för de som är vana vid JSON-hantering.

Se även:

För mer om Rust och XML: