Crates.io | xml-builder |
lib.rs | xml-builder |
version | 0.5.3 |
source | src |
created_at | 2021-07-01 18:49:44.410704 |
updated_at | 2024-08-27 17:13:17.160131 |
description | Easy and highly-configurable XML builder/writer |
homepage | |
repository | https://github.com/cocool97/xml-builder |
max_upload_size | |
id | 417545 |
size | 23,918 |
This crate allows you to easily create an XML file in a short time by building a highly-configurable object tree.
This crate offers many advantages over other XML-building crates :
#![forbid(unsafe_code)]
lint directiveUsing this crate can bring you many useful features :
To use this crate you just need to add this to your Cargo.toml
file:
[dependencies]
xml-builder = "*"
use xml_builder::{XMLBuilder, XMLElement, XMLVersion};
let mut xml = XMLBuilder::new()
.version(XMLVersion::XML1_1)
.encoding("UTF-8".into())
.build();
let mut house = XMLElement::new("house");
house.add_attribute("rooms", "2");
for i in 1..=2 {
let mut room = XMLElement::new("room");
room.add_attribute("number", &i.to_string());
room.add_text(format!("This is room number {}", i)).unwrap();
house.add_child(room).unwrap();
}
xml.set_root_element(house);
let mut writer: Vec<u8> = Vec::new();
xml.generate(&mut writer).unwrap();
This following XML content will then be displayed:
<?xml encoding="UTF-8" version="1.1"?>
<house rooms="2">
<room number="1" price="42">This is room number 1</room>
<room number="2" price="84">This is room number 2</room>
</house>