10 releases (6 breaking)
Uses old Rust 2015
0.7.0 | Aug 4, 2018 |
---|---|
0.6.2 | Oct 1, 2017 |
0.6.1 | Jul 7, 2017 |
0.5.0 | Jul 5, 2017 |
0.1.1 | Oct 13, 2015 |
#35 in #parse-tree
189 downloads per month
Used in 8 crates
(7 directly)
19KB
414 lines
treexml
: An XML Tree Library for Rust
treexml
is a simple element-tree style library for XML data.
Usage
Like most rust
packages, treexml
uses cargo.
To use treexml
, add the following to your project's Cargo.toml
[dependencies]
treexml = "0.7"
The package exposes a crate named treexml
.
extern crate treexml;
Reading XML Data
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());
}
Writing XML Data
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);
}
Contributing
This project is licensed under the MIT license.
If you encounter any issues, please file them on the GitHub issue tracker at https://github.com/rahulg/treexml/issues.
Dependencies
~315KB