A simple, streaming, partially-validating XML writer that writes XML data into an internal buffer.
- A simple, bare-minimum, panic-based API.
- Non-allocating API. All methods are accepting either
fmt::Display
orfmt::Arguments
. - Nodes auto-closing.
use xmlwriter::*;
let opt = Options {
use_single_quote: true,
..Options::default()
};
let mut w = XmlWriter::new(opt);
w.start_element("svg");
w.write_attribute("xmlns", "http://www.w3.org/2000/svg");
w.write_attribute_fmt("viewBox", format_args!("{} {} {} {}", 0, 0, 128, 128));
w.start_element("text");
// We can write any object that implements `fmt::Display`.
w.write_attribute("x", &10);
w.write_attribute("y", &20);
w.write_text_fmt(format_args!("length is {}", 5));
assert_eq!(w.end_document(),
"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 128'>
<text x='10' y='20'>
length is 5
</text>
</svg>
");
MIT