#xml

xmlwriter

A simple, streaming XML writer

1 unstable release

0.1.0 Aug 12, 2019

#60 in #xml

Download history 1244/week @ 2021-06-02 1996/week @ 2021-06-09 1997/week @ 2021-06-16 2610/week @ 2021-06-23 2549/week @ 2021-06-30 2219/week @ 2021-07-07 2817/week @ 2021-07-14 3243/week @ 2021-07-21 2316/week @ 2021-07-28 2893/week @ 2021-08-04 3351/week @ 2021-08-11 1988/week @ 2021-08-18 1890/week @ 2021-08-25 2709/week @ 2021-09-01 3299/week @ 2021-09-08 2555/week @ 2021-09-15

8,927 downloads per month
Used in 73 crates (5 directly)

MIT license

18KB
320 lines

xmlwriter

Build Status Crates.io Documentation

A simple, streaming, partially-validating XML writer that writes XML data into an internal buffer.

Features

  • A simple, bare-minimum, panic-based API.
  • Non-allocating API. All methods are accepting either fmt::Display or fmt::Arguments.
  • Nodes auto-closing.

Example

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>
");

License

MIT

No runtime deps