How to Parse XML in Rust

Parse XML in Rust using the quick-xml crate to iterate over events and extract data efficiently.

Use the quick-xml crate to parse XML efficiently in Rust. Add the dependency to Cargo.toml and use Reader to iterate over events.

[dependencies]
quick-xml = "0.31"
use quick_xml::events::Event;
use quick_xml::Reader;

fn main() {
    let xml = r#"<root><item>value</item></root>"#;
    let mut reader = Reader::from_str(xml);
    let mut buf = Vec::new();

    loop {
        match reader.read_event_into(&mut buf) {
            Ok(Event::Start(e)) => println!("Tag: {}", e.name()),
            Ok(Event::Text(e)) => println!("Text: {}", e.unescape().unwrap()),
            Ok(Event::Eof) => break,
            Err(e) => panic!("Error: {}", e),
            _ => {}
        }
        buf.clear();
    }
}