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 中
每月189 次下载
用于 8 个crate (7 个直接使用)
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