Rust:
Werken met XML
Hoe te:
In Rust kun je met XML omgaan met crates zoals xml-rs
. Installeer door xml-rs = "0.8"
toe te voegen aan je Cargo.toml
. Hier is hoe je een eenvoudige XML kunt parsen:
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!("Start: {}", name);
}
Ok(XmlEvent::Characters(data)) => {
println!("Tekst: {}", data);
}
Ok(XmlEvent::EndElement { name }) => {
println!("Einde: {}", name);
}
Err(e) => {
println!("Fout: {}", e);
}
_ => {}
}
}
}
Output:
Start: book
Start: title
Tekst: Rust in Action
Einde: title
Start: author
Tekst: Tim McNamara
Einde: author
Start: year
Tekst: 2021
Einde: year
Einde: book
Deze code leest XML stream-gewijs, en behandelt start- en eind-elementen plus tekstgegevens, en logt elke stap.
Diepe Duik:
XML is een senior in tech jaren, ontworpen voor het web in de late jaren ‘90. Zijn ontwerp bevordert leesbaarheid (voor zowel machines als mensen) en uitgebreide zelfbeschrijvende gegevens.
Alternatieven? Natuurlijk, JSON is de moderne go-to voor web API’s, lichter en minder rommelig. Ondertussen heeft YAML fans opgepikt voor configuraties, met zijn schone lay-out. Maar XML gaat voorlopig nergens heen—enorme infrastructuren zijn gebouwd op zijn rug.
Onder de motorkap leunt Rust’s XML-parser op iteratorpatronen, houdt het geheugengebruik laag en de prestaties scherp. Je vindt crates zoals serde-xml-rs
voor een meer serde-achtige ervaring—een zegen voor degenen die gewend zijn aan de omgang met JSON.
Zie Ook:
Voor meer over Rust en XML:
serde-xml-rs
voor Rust’s serde compatibiliteit: https://github.com/RReverser/serde-xml-rs- Officiële Rust documentatie (want het kan nooit kwaad om op te frissen): https://doc.rust-lang.org/stable/book/