Expand description
§woxml
The XmlWriter is designed to write xml in an efficient way without any DOM or other intermediate structures.
The implementation is based on the crate xml_writer by Piotr Zolnierek,
but can also be used in #[no_std] environments (use ‘default-features = false’).
It is not an exact drop-in-replacement for xml_writer’s XmlWriter as the access to interiors is prohibitet, you have to use different constructors and accessors respectively.
It also is not possible to use it for all std::io::Write implementors,
as it is also usable in #[no_std] environments.
There is an own Write trait, which currently is implemented by the crate for
Vec<u8>bytes::BytesMut.
Future versions will add further implementations of Write.
If you need a missing implementation, please file an issue or create a pull request.
§Usage
extern crate woxml;
use woxml::XmlWriter;
let mut xml = XmlWriter::pretty_mode(Vec::new()); // supply a `woxml::Write` implementor
xml.begin_elem("root");
xml.comment("have a nice day");
xml.begin_elem("first");
xml.attr_esc("name", "\"123\"");
xml.attr("id", "abc");
xml.text("'text'");
xml.end_elem();
xml.begin_elem("stuff");
xml.cdata("some cdata");
xml.end_elem();
xml.set_namespace("area51");
xml.comment("in namespace 'area51'");
xml.elem("first");
xml.unset_namespace();
xml.end_elem();
xml.close(); // This will also close all open elements
xml.flush();
println!("{}", String::try_from(xml).unwrap())§License
Licensed under either of
- Apache License, Version 2.0 LICENSE-APACHE or source
- MIT license LICENSE-MIT or source
at your option.
§Contribution
Any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.
Structs§
- XmlWriter
- The
XmlWriterhimself. Elements without children are automatically self-closing. In ‘pretty’ mode the writer will
Enums§
- Error
- Things that may go wrong during creation of the XML.
Traits§
- Write
- The trait for objects which are byte-oriented sinks.