Crate simple_xml_serialize[−][src]
Simple XML Serialization
This is a Rust crate for serialization of data to XML. XMLElement
s can either be built
manually, or the simple_xml_serialize_macro
crate can be used to generate From
implementations for structs.
Example Usage
use simple_xml_serialize::XMLElement; fn main() { // build up your XMLElement with individual calls ... let mut ele = XMLElement::new("person"); ele.add_attr("age", 28); // accept any value that implements `ToString`. ele.set_text("John Doe"); // ... or with the builder pattern let sub_ele = XMLElement::new("person") .attr("age", 4) .text("Jane Doe"); ele.add_element(sub_ele); // `add_element` accepts values that implement `Into<XMLElement>` let expected = r#"<person age="28"><person age="4">Jane Doe</person>John Doe</person>"#; assert_eq!(expected, ele.to_string()); println!("{}", ele.to_string_pretty("\n", "\t")); // specify your preferred newline and indentation for pretty printing ele.set_text("John Doe > John Deere"); // illegal characters in text will be substituted e.g. > becomes > let expected = r#"<person age="28"><person age="4">Jane Doe</person>John Doe > John Deere</person>"#; assert_eq!(expected, ele.to_string()); ele.set_text("<![CDATA[John Doe > John Deere]]>"); // illegal characters in CDATA tags are respected let expected = r#"<person age="28"><person age="4">Jane Doe</person><![CDATA[John Doe > John Deere]]></person>"#; assert_eq!(expected, ele.to_string()); }
Structs
XMLAttr | A key/value pair that is serialized inside the opening tag of an XMLElement. |
XMLElement | The basic type this crate provides. Functions are provided for setting/adding to the fields in this struct. Any manipulation past that is left to the user by accessing the fields directly. |