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();
}
}