treexml 0.7.0

An XML tree library for Rust

treexml: An XML Tree Library for Rust

treexml is a simple element-tree style library for XML data.


Like most rust packages, treexml uses cargo. To use treexml, add the following to your project's Cargo.toml

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"?>
        <fruit type="apple">worm</fruit>
        <vegetable />

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

    let fruit = root.find_child(|tag| == "fruit").unwrap().clone();
    println!("{} [{:?}] = {}",, 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");

    let doc = Document::build(
                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);



This project is licensed under the MIT license.

If you encounter any issues, please file them on the GitHub issue tracker at