14个版本

0.5.2 2023年3月19日
0.5.1 2022年11月5日
0.5.0 2021年11月28日
0.4.0 2021年11月27日
0.1.4 2021年7月7日

#263数据结构

Download history 567/week @ 2024-03-13 636/week @ 2024-03-20 860/week @ 2024-03-27 933/week @ 2024-04-03 824/week @ 2024-04-10 1017/week @ 2024-04-17 818/week @ 2024-04-24 609/week @ 2024-05-01 528/week @ 2024-05-08 430/week @ 2024-05-15 790/week @ 2024-05-22 582/week @ 2024-05-29 541/week @ 2024-06-05 549/week @ 2024-06-12 485/week @ 2024-06-19 442/week @ 2024-06-26

2,124 每月下载量
19 个crate(7个直接)中使用

MIT 许可证

17KB
285

xml-builder

Documentation Latest version dependency status codecov

此crate允许您通过构建一个高度可配置的对象树,在短时间内轻松创建XML文件。

主要优势

与其他XML构建crate相比,此crate提供了许多优势

  • 快速且易于创建XML文档
  • 体积小,适合嵌入式系统
  • 不依赖其他crate
  • 高度可配置
  • 无不安全代码,它集成了 #![forbid(unsafe_code)] lint指令

主要功能

使用此crate可以为您带来许多有用的功能

  • 元素属性排序
  • XML缩进,或不缩进
  • 自定义XML版本
  • 自定义XML编码

用法

要使用此crate,只需将其添加到您的 Cargo.toml 文件中

[dependencies]
xml-builder = "*"

示例

use xml_builder::{XMLBuilder, XMLElement, XMLVersion};

fn main() {
    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();
}

以下XML内容将随后显示

<?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>

无运行时依赖