5 个版本 (3 个重大变更)
0.4.1 | 2020 年 11 月 3 日 |
---|---|
0.4.0 | 2019 年 10 月 2 日 |
0.3.0 | 2018 年 7 月 10 日 |
0.2.0 | 2018 年 2 月 4 日 |
0.1.0 |
|
#615 在 解析器实现 中排名
每月下载量 10,194
在 9 个 包中使用(直接使用 7 个)
29KB
592 行
sitemap,Rust 的网站地图库
sitemap 是 Rust 编程语言的网站地图库。
特性
- 流式读取网站地图
限制
- 目前只支持 UTF-8 编码
- 不支持验证
构建和使用
sitemap 使用 Cargo,所以只需在项目的清单文件中添加依赖项部分
[dependencies]
sitemap = "0.4"
读取网站地图文档
sitemap::reader::SiteMapReader
需要一个 Read
实例来读取。当有合适的基于流的编码库可用时,sitemap 可能会切换到使用该库提供的任何字符流结构,但目前它是一个 Read
。
使用 SiteMapReader
非常简单。只需提供一个 Read
实例即可获取事件迭代器
use sitemap::reader::{SiteMapReader,SiteMapEntity};
use std::fs::File;
fn main() {
let mut urls = Vec::new();
let mut sitemaps = Vec::new();
let mut errors = Vec::new();
let file = File::open("sitemap.xml").expect("Unable to open file.");
let parser = SiteMapReader::new(file);
for entity in parser {
match entity {
SiteMapEntity::Url(url_entry) => {
urls.push(url_entry);
},
SiteMapEntity::SiteMap(sitemap_entry) => {
sitemaps.push(sitemap_entry);
},
SiteMapEntity::Err(error) => {
errors.push(error);
},
}
}
println!("urls = {:?}",urls);
println!("sitemaps = {:?}",sitemaps);
println!("errors = {:?}",errors);
}
编写网站地图文档
use sitemap::writer::SiteMapWriter;
use sitemap::structs::UrlEntry;
use std::io::stdout;
fn main() {
let mut output = stdout();
let sitemap_writer = SiteMapWriter::new(&mut output);
let mut urlwriter = sitemap_writer.start_urlset().expect("Unable to write urlset");
urlwriter.url("http://github.com").expect("Unable to write url");
urlwriter.url(UrlEntry::builder().loc("http://google.com")).expect("Unable to write url");
urlwriter.url(UrlEntry::builder().loc("http://yandex.ru").build().unwrap()).expect("Unable to write url");
urlwriter.end().expect("Unable to write close tags");
}
路线图
优先级最高的先做,大致如此。
- 网站地图写入器 - 完成
- 网站地图验证
已知问题
所有已知问题都在 GitHub 问题跟踪器上:http://github.com/svmk/sitemap/issues。欢迎在那里发布任何发现的问题。
许可证
此库根据 MIT 许可证授权。
依赖项
~2.5MB
~71K SLoC