xmlite

Crates.ioxmlite
lib.rsxmlite
version0.3.0
created_at2025-06-17 12:20:44.776829+00
updated_at2025-06-30 10:48:01.343408+00
descriptiona light-weight, read-write XML parser.
homepagehttps://github.com/vodofrede/xmlite-rs
repositoryhttps://github.com/vodofrede/xmlite-rs
max_upload_size
id1715664
size213,468
Frederik Palmø (vodofrede)

documentation

README

xmlite

XML 1.0 parser library for Rust.

Usage

The two most relevant functions are xmlite::document and xmlite::tags for parsing a whole document or individual tags.

See the documentation for specific usage instructions.

Examples

Parse a document:

let text = r#"<?xml?><can><beans kind="fava">Cool Beans</beans><sauce></sauce></can>"#;
let xml = xmlite::document(text).unwrap();
eprintln!("{xml:?}");
assert_eq!(xml.name(), Some("can"));
assert_eq!(xml.children().next().unwrap().name(), Some("beans"));
assert_eq!(xml.children().next().unwrap().attr("kind"), Some("\"fava\""));

Mutate the document afterwards:

let text = r#"<?xml?><bag><pastry kind="danish" /></bag>"#;
let mut xml = xmlite::document(text).unwrap();
# assert_eq!(xml.name(), Some("bag"));
let attr = xml.children_mut().find(|e| e.name() == Some("pastry")).unwrap().attr_mut("kind");
*attr.unwrap() = "berliner".to_owned();

License

This project is licensed under the AGPL. See the license text for more information.

References

https://www.w3.org/TR/REC-xml/
https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home

Commit count: 14

cargo fmt