29 个版本

0.12.3 2024 年 5 月 11 日
0.12.2 2023 年 7 月 26 日
0.12.1 2023 年 3 月 27 日
0.12.0 2022 年 12 月 29 日
0.1.1 2015 年 5 月 22 日

#216解析器实现

Download history 3990/week @ 2024-04-26 4125/week @ 2024-05-03 3650/week @ 2024-05-10 3246/week @ 2024-05-17 4120/week @ 2024-05-24 3836/week @ 2024-05-31 3066/week @ 2024-06-07 3948/week @ 2024-06-14 4141/week @ 2024-06-21 3607/week @ 2024-06-28 3707/week @ 2024-07-05 3632/week @ 2024-07-12 3834/week @ 2024-07-19 4229/week @ 2024-07-26 3430/week @ 2024-08-02 3835/week @ 2024-08-09

15,836 每月下载量
用于 30 仓库(23 个直接使用)

MIT/Apache 许可

135KB
2.5K SLoC

atom

Build status Crates.io Status Coverage

用于序列化 Atom 网页内容订阅格式的库。

文档

此软件包需要 Rustc 版本 1.57.0 或更高

使用

将依赖项添加到您的 Cargo.toml

[dependencies]
atom_syndication = "0.12"

或者,如果您想使用 Serde,请按如下方式包含功能

[dependencies]
atom_syndication = { version = "0.12", features = ["with-serde"] }

该软件包包含一个名为 atom_syndication 的单个 crate。

extern crate atom_syndication;

读取

可以从实现 BufRead 特性的任何对象中读取一个源,或使用 FromStr 特性。

use std::fs::File;
use std::io::BufReader;
use atom_syndication::Feed;

let file = File::open("example.xml").unwrap();
let feed = Feed::read_from(BufReader::new(file)).unwrap();

let string = "<feed></feed>";
let feed = string.parse::<Feed>().unwrap();

写入

可以将源写入实现 Write 特性的任何对象,或使用 ToString 特性将其转换为 XML 字符串。

注意:写入源时不会执行任何 XML 实体的转义。

示例

use std::fs::File;
use std::io::{BufReader, sink};
use atom_syndication::Feed;

let file = File::open("example.xml").unwrap();
let feed = Feed::read_from(BufReader::new(file)).unwrap();

// write to the feed to a writer
feed.write_to(sink()).unwrap();

// convert the feed to a string
let string = feed.to_string();

无效的源

作为解析无效源的最佳尝试,atom_syndication 将 Atom 规范中声明为“必需”的元素默认为空字符串。

许可

根据您的选择,许可如下

依赖项

~6MB
~163K SLoC