Crate xpath_reader

Source
Expand description

Provides a convenient API to read from XML using XPath expressions.

This crate is mostly a wrapper around the crate sxd_xpath.

§Examples

use xpath_reader::{Context, Reader};

let xml = r#"<?xml version="1.0"?><book xmlns="books" name="Neuromancer" author="William Gibson"><tags><tag name="cyberpunk"/><tag name="sci-fi"/></tags></book>"#;

let mut context = Context::new();
context.set_namespace("b", "books");

let reader = Reader::from_str(xml, Some(&context)).unwrap();

let name: String = reader.read("//@name").unwrap();
assert_eq!(name, "Neuromancer".to_string());

let publisher: Option<String> = reader.read("//@publisher").unwrap();
let author: Option<String> = reader.read("//@author").unwrap();
assert_eq!(publisher, None);
assert_eq!(author, Some("William Gibson".to_string()));

let tags: Vec<String> = reader.read("//b:tags/b:tag/@name").unwrap();
assert_eq!(tags, vec!["cyberpunk".to_string(), "sci-fi".to_string()]);

Re-exports§

pub use self::reader::FromXml;
pub use self::reader::FromXmlOptional;
pub use self::reader::FromXmlResult;
pub use self::reader::Reader;

Modules§

expression
XPath expression convenience typing.
reader
XPath based document parsing.

Structs§

Context
Contains the context in which XPath expressions are executed. The context contains functions, variables, and namespace mappings.
Error
The error type used throughout the crate.

Enums§

ErrorKind
Describes the kind of the error.