#html-parser #query-parser #html #query #dom #parser

html_query_parser

纯、简洁、优雅的HTML解析器和查询选择器

5个不稳定版本

0.3.1 2022年1月1日
0.3.0 2022年1月1日
0.2.1 2021年12月27日
0.2.0 2021年12月27日
0.1.0 2021年12月23日

40#query-parser

每月 24次下载

MIT 许可证

33KB
678

警告

此仓库已弃用,请改用 html-editor

如果您想拥有此crate名称的所有权,请联系我 [email protected],以便我可以将其转让给您。

Crates.io

HTML查询解析器

纯、简洁、优雅的HTML解析器和查询选择器。

示例

解析HTML片段/文档

let document = parse("<!doctype html><html><head></head><body></body></html>");
println!("{:#?}", document);

输出

[
    Doctype,
    Element {
        name: "html",
        attrs: {},
        children: [
            Element {
                name: "head",
                attrs: {},
                children: [],
            },
            Element {
                name: "body",
                attrs: {},
                children: [],
            },
        ],
    },
]

通过类名查询元素

// let html = r#"..."#
let nodes = parse(html);
let selector: Selector = Selector::from(".last");
let element: Element = nodes.query(&selector).unwrap();

通过标签查询所有元素

// let html = r#"..."#
let nodes = parse(html);
let selector: Selector = Selector::from("span");
let elements: Vec<Element> = nodes.query_all(&selector);

编辑HTML

// let html = r#"..."#
let a: String = parse(html).trim().html();
let b: String = parse(html).insert_to(&selector, node).html();
let c: String = parse(html).remove_by(&selector).html();

您可以在 文档 中找到更多示例。

更新日志

CHANGELOG.md 中查看

无运行时依赖