xmpp-rs/minidom-rs/src/lib.rs

82 lines
1.9 KiB
Rust
Raw Normal View History

#![deny(missing_docs)]
//! A minimal DOM crate built on top of quick-xml.
2017-02-21 14:46:06 +00:00
//!
//! This library exports an `Element` struct which represents a DOM tree.
//!
//! # Example
//!
//! Run with `cargo run --example articles`. Located in `examples/articles.rs`.
//!
//! ```rust,ignore
//! extern crate minidom;
//!
//! use minidom::Element;
//!
//! const DATA: &'static str = r#"<articles xmlns="article">
//! <article>
//! <title>10 Terrible Bugs You Would NEVER Believe Happened</title>
//! <body>
//! Rust fixed them all. &lt;3
//! </body>
//! </article>
//! <article>
//! <title>BREAKING NEWS: Physical Bug Jumps Out Of Programmer's Screen</title>
//! <body>
//! Just kidding!
//! </body>
//! </article>
//! </articles>"#;
//!
//! const ARTICLE_NS: &'static str = "article";
//!
//! #[derive(Debug)]
//! pub struct Article {
//! title: String,
//! body: String,
//! }
//!
//! fn main() {
//! let root: Element = DATA.parse().unwrap();
//!
//! let mut articles: Vec<Article> = Vec::new();
//!
//! for child in root.children() {
//! if child.is("article", ARTICLE_NS) {
//! let title = child.get_child("title", ARTICLE_NS).unwrap().text();
//! let body = child.get_child("body", ARTICLE_NS).unwrap().text();
//! articles.push(Article {
//! title: title,
//! body: body.trim().to_owned(),
//! });
//! }
//! }
//!
//! println!("{:?}", articles);
//! }
//! ```
//!
//! # Usage
//!
//! To use `minidom`, add this to your `Cargo.toml` under `dependencies`:
2017-02-21 14:46:06 +00:00
//!
//! ```toml,ignore
//! minidom = "*"
2017-02-21 14:46:06 +00:00
//! ```
pub use quick_xml;
2017-02-19 19:46:44 +00:00
pub mod convert;
pub mod element;
pub mod error;
2017-08-13 15:29:38 +00:00
mod namespace_set;
pub mod node;
2017-02-19 19:46:44 +00:00
#[cfg(test)]
mod tests;
2017-02-19 19:46:44 +00:00
pub use convert::IntoAttributeValue;
pub use element::{Children, ChildrenMut, Element, ElementBuilder};
pub use error::{Error, Result};
pub use node::Node;