#xml #attributes #cdata

xml-creator

Create simple xml files

1 unstable release

0.1.1 Aug 25, 2023
0.1.0 Aug 25, 2023

#211 in #attributes

MIT license

11KB
204 lines

xml-creator

Latest version Documentation License

A Rust library for building a simple xml (with childs, attributes, CDATA...)

Documentation

Usage

Add this to your Cargo.toml:

[dependencies]
xml-creator = "0.0.1"

and/or this to your crate root:

extern crate xml_creator;

Example

use std::io;
fn main() -> io::Result<()> {
use std::fs::File;
use xml_creator::XMLElement;
/*
let mut file = File::create("example.xml").unwrap();
*/
let mut file: Vec<u8> = Vec::new();
let mut company = XMLElement::new("company");
company.add_attribute("name", "val");
let mut employee = XMLElement::new("employee");
// no escaping and CDATA needed
employee.add_text("Max Mustermann".to_string(), false, false);
let mut cdata = XMLElement::new("cdata");
// will get wrapped into CDATA
cdata.add_text("<p>Some Html</p>".to_string(), false, true);
company.add_child(cdata);
let mut escape = XMLElement::new("escape");
// < will get escaped
escape.add_text("<".to_string(), true, false);
company.add_child(escape);
// add employee to company
company.add_child(employee);
company.write(file)..unwrap();
Ok(())
}

example.xml will contain:

<?xml version = "1.0" encoding = "UTF-8"?>
<company name="val">
    <employee>Max Mustermann</employee>
    <cdata><![CDATA[<p>Some Html</p>]]></cdata>
    <escape>&lt;</escape>
</company>

Dependencies

~1MB
~14K SLoC