4 releases
0.1.10 | Aug 10, 2020 |
---|---|
0.1.8 | Aug 10, 2020 |
0.1.7 | Aug 10, 2020 |
0.1.6 | Aug 7, 2020 |
#2585 in Rust patterns
495 downloads per month
18KB
384 lines
Simple XML
Simple xml is a small crate for reading, parsing and storing xml data
Usage
Example parsing:
let note =
simple_xml::from_file("./examples/note.xml").expect("Failed to parse simple_xml");
let to = ¬e["to"][0];
let from = ¬e["from"][0];
let heading = ¬e.get_nodes("heading").expect("Missing heading")[0];
let body = ¬e["body"][0];
let lang = note
.get_attribute("lang")
.expect("Failed to get attribute lang");
More examples can be found in the docs and tests
lib.rs
:
XML parser and writer This crate can load xml from a file or string and parse it into memory XML can also be manipulated or created and the written to file
Loading xml from a file
fn load_message() -> Result<(), simple_xml::Error> {
let root = simple_xml::from_file("examples/message.xml")?;
// Since there can multiple nodes/tags with the same name, we need to index twice
let heading = &root["heading"][0];
println!("Heading: {}", heading.content);
// Access attributes
let lang = root.get_attribute("lang").expect("Missing lang attribute");
println!("Language: {}", lang);
Ok(())
}
Creating xml structures
let name = String::from("Tim Roberts");
let health = 50;
let mut player = simple_xml::new("player", String::new());
player.add_new_node("health", health.to_string());
player.add_new_node("name", name);
// Save to file
player.save_to_file("./player.xml");
For more example, see the tests