1个不稳定版本

0.1.0 2023年1月6日

#2421解析器实现

Download history 2/week @ 2024-03-26 35/week @ 2024-04-02

220 每月下载次数

MIT/Apache

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-2.0许可证中定义,应按上述方式双重许可,无需任何额外条款或条件。

依赖关系

~4–10MB
~97K SLoC