dummy_xml

A fast DOM XML parser. This is a bad incomplete clone of pugixml

Example

How to parse: ```rust extern crate dummy_xml;

use dummy_xml::parser;

let result = parser::parse_str(""); match result { Ok(document) => { let root = document.root(); println!("root is {:?}", root); } Err(error) => panic!("{:?}", error), } ```

How to write: ```rust use dummyxml::writer; use dummyxml::node::Node;

let mut root = Node::new("parent".tostring()); root.appendchild("child1".tostring()) .appendattribute("gender".tostring(), "male".tostring()); root.appendchild("child2".tostring()) .appendattribute("gender".tostring(), "female".tostring()); root.appendchild("child3".tostring()) .appendattribute("gender".tostring(), "non-gender".tostring());

let mut result = String::new(); writer::write(&root, &mut result); println!("{}", result);

//expect to see: // // // // // ```

Performance

```rust //dummyxml test dummyxmllarge ... bench: 2,085,654 ns/iter (+/- 320,643) test dummyxmlmedium ... bench: 613,433 ns/iter (+/- 99,178) test dummyxml_small ... bench: 4,531 ns/iter (+/- 867)

//quick-xml test quickxmllarge ... bench: 2,043,964 ns/iter (+/- 237,291) test quickxmlmedium ... bench: 489,891 ns/iter (+/- 76,405) test quickxmlsmall ... bench: 6,982 ns/iter (+/- 962)

//sxddocument test sxddocumentmedium ... bench: 3,351,998 ns/iter (+/- 479,587) test sxddocument_small ... bench: 52,789 ns/iter (+/- 8,984)

//xml5ever test xml5everlarge ... bench: 8,014,460 ns/iter (+/- 937,028) test xml5evermedium ... bench: 7,051,655 ns/iter (+/- 779,365) test xml5ever_small ... bench: 45,966 ns/iter (+/- 35,997)

//xmlrs test xmlrslarge ... bench: 28,106,508 ns/iter (+/- 2,995,895) test xmlrsmedium ... bench: 13,045,977 ns/iter (+/- 1,617,525) test xmlrs_small ... bench: 94,883 ns/iter (+/- 17,121) ``` Benchmark using choose-your-xml-rs on Mar 8, 2018