#xml #parse-tree #tree #parse

treexml

Rust 的 XML 树库

10 个版本 (6 个重大变更)

使用旧的 Rust 2015

0.7.0 2018年8月4日
0.6.2 2017年10月1日
0.6.1 2017年7月7日
0.5.0 2017年7月5日
0.1.1 2015年10月13日

#35#parse-tree

Download history 73/week @ 2024-03-11 75/week @ 2024-03-18 54/week @ 2024-03-25 141/week @ 2024-04-01 67/week @ 2024-04-08 80/week @ 2024-04-15 101/week @ 2024-04-22 64/week @ 2024-04-29 35/week @ 2024-05-06 48/week @ 2024-05-13 26/week @ 2024-05-20 52/week @ 2024-05-27 43/week @ 2024-06-03 38/week @ 2024-06-10 40/week @ 2024-06-17 66/week @ 2024-06-24

每月189 次下载
用于 8 个crate (7 个直接使用)

MIT 许可证

19KB
414

treexml: Rust 的 XML 树库

treexml 是一个简单的元素树风格库,用于 XML 数据。

用法

与大多数 rust 包一样,treexml 使用 cargo。要使用 treexml,请在项目的 Cargo.toml 中添加以下内容

[dependencies]
treexml = "0.7"

该包公开了一个名为 treexml 的 crate。

extern crate treexml;

读取 XML 数据

extern crate treexml;

use treexml::Document;

fn main() {

    let doc_raw = r#"
    <?xml version="1.1" encoding="UTF-8"?>
    <table>
        <fruit type="apple">worm</fruit>
        <vegetable />
    </table>
    "#;

    let doc = Document::parse(doc_raw.as_bytes()).unwrap();
    let root = doc.root.unwrap();

    let fruit = root.find_child(|tag| tag.name == "fruit").unwrap().clone();
    println!("{} [{:?}] = {}", fruit.name, fruit.attributes, fruit.contents.unwrap());

}

写入 XML 数据

extern crate treexml;

use treexml::{Document, ElementBuilder as E};

fn main() {
    let mut something = E::new("something");
    root.attr("key", "value");
    root.text("some-text");

    let doc = Document::build(
        E::new("root").children(vec![
            E::new("list").children(vec![
                E::new("child").cdata("test data here"),
                E::new("child").attr("class", "foo").text("bar"),
                E::new("child").attr("class", 22).text(11),
                &mut E::new("child"),
                &mut something,
            ]),
        ])
    );

    println!("{}", doc);

}

贡献

此项目使用 MIT 许可证。

如果您遇到任何问题,请在 GitHub 问题跟踪器中提交问题:https://github.com/rahulg/treexml/issues

依赖项

~315KB