#xpath #xml #read #expressions #api #reader #queries

xpath_reader

提供使用 XPath 表达式从 XML 中读取的便捷 API

11 个版本

使用旧的 Rust 2015

0.5.3 2019 年 5 月 29 日
0.5.2 2019 年 3 月 19 日
0.5.1 2018 年 11 月 19 日
0.5.0 2018 年 4 月 26 日
0.3.2 2017 年 7 月 9 日

#19 in #xpath

Download history 75/week @ 2024-04-08 49/week @ 2024-04-15 39/week @ 2024-04-22 91/week @ 2024-04-29 30/week @ 2024-05-06 33/week @ 2024-05-13 48/week @ 2024-05-20 84/week @ 2024-05-27 24/week @ 2024-06-03 34/week @ 2024-06-10 12/week @ 2024-06-17 18/week @ 2024-06-24 56/week @ 2024-07-01 8/week @ 2024-07-08 16/week @ 2024-07-15 16/week @ 2024-07-22

98 次每月下载
3 个 crate(2 个直接)中使用

Apache-2.0

26KB
460

xpath_reader

xpath-reader Build Status

提供使用 XPath 表达式从 XML 中读取的便捷 API。

此 crate 主要是对 crate sxd_xpath 的包装。


lib.rs:

提供使用 XPath 表达式从 XML 中读取的便捷 API。

此 crate 主要是对 crate sxd_xpath 的包装。

示例

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()]);

依赖项

~580KB
~14K SLoC