1个不稳定版本
0.1.0 | 2023年1月6日 |
---|
#2421 在 解析器实现
220 每月下载次数
19KB
438 行
sxd_html_table
提供与HTML表格相关的功能
处理HTML表格时有一些复杂性需要处理。
- 存在colspan和rowspan,行数和列数是不确定的。
- 有th和td,单元格的类型需要注意。
这个库隐藏了这些复杂性,使得处理表格结构变得简单。例如,可以将HTML表格标签转换为CSV文件。
使用方法
use sxd_html_table::Table;
let html = r#"
<table>
<tr>
<th>header1</th>
<th>header2</th>
</tr>
<tr>
<td>data1</td>
<td>data2</td>
</tr>
</table>
"#;
fn extract_table_texts_from_document(html: &str) -> Result<Vec<Table<String>>, Error> {
let package = sxd_html::parse_html(html);
let document = package.as_document();
let tables = extract_table_nodes_to_table(document.root())?;
let tables = tables
.into_iter()
.map(|table| table.to_string_table())
.collect();
Ok(tables)
}
let table = extract_table_texts_from_document(html).unwrap();
let csv = table.to_csv().unwrap();
assert_eq!(csv, "header1,header2\ndata1,data2\n");
许可证
许可协议为以下之一:
- Apache License,版本2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确表示,否则您提交的任何有意包含在工作中的贡献,如Apache-2.0许可证中定义,应按上述方式双重许可,无需任何额外条款或条件。
依赖关系
~4–10MB
~97K SLoC