28个版本 (11个稳定版)
2.1.0 | 2024年7月19日 |
---|---|
1.5.3 | 2024年5月26日 |
1.4.0 | 2024年1月10日 |
1.3.0 | 2023年2月10日 |
0.1.3 | 2017年7月7日 |
#99 in 解析器实现
每月5,971次下载
在 31 个crate中使用 27 个直接使用
240KB
4K SLoC
feed-rs
一个用于解析各种形式的数据源库,如Atom、RSS和JSON Feed。它还支持iTunes、Dublin Core和Media RSS扩展,并通过serde进行序列化和反序列化。
用法
将依赖项添加到您的 Cargo.toml
。
[dependencies]
feed-rs = "2.1.0"
读取
可以从实现 Read
特性的任何对象解析数据源。
use feed_rs::parser;
let xml = r#"
<feed>
<title type="text">sample feed</title>
<updated>2005-07-31T12:29:29Z</updated>
<id>feed1</id>
<entry>
<title>sample entry</title>
<id>entry1</id>
</entry>
</feed>
"#;
let feed = parser::parse(xml.as_bytes()).unwrap();
解析器将自动检测XML与JSON,因此解析JSON Feed内容的方式相同。
use feed_rs::parser;
let json = r#"
{
"version": "https://jsonfeed.org/version/1",
"title": "JSON Feed",
"description": "JSON Feed is a pragmatic syndication format for blogs, microblogs, and other time-based content.",
"home_page_url": "https://jsonfeed.org/",
"feed_url": "https://jsonfeed.org/feed.json",
"author": {
"name": "Brent Simmons and Manton Reece",
"url": "https://jsonfeed.org/"
},
"items": [
{
"title": "Announcing JSON Feed",
"date_published": "2017-05-17T08:02:12-07:00",
"id": "https://jsonfeed.org/2017/05/17/announcing_json_feed",
"url": "https://jsonfeed.org/2017/05/17/announcing_json_feed",
"content_html": "<p>We — Manton Reece and Brent Simmons — have noticed that JSON...</p>"
}
]
}"#;
let feed = parser::parse(json.as_bytes()).unwrap();
许可证
MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
贡献
您提交的任何有意包含在作品中的贡献,均应按上述方式许可,不附加任何额外条款或条件。
依赖
~12MB
~297K SLoC