html_query_parser

Crates.iohtml_query_parser
lib.rshtml_query_parser
version0.3.1
sourcesrc
created_at2021-12-23 03:25:58.568586
updated_at2022-01-01 13:27:13.36067
descriptionPure, simple and elegant HTML parser and query selector.
homepagehttps://github.com/lomirus/html_query_parser
repositoryhttps://github.com/lomirus/html_query_parser
max_upload_size
id502031
size39,996
Lomírus (lomirus)

documentation

README

Warning

This repository has been deprecated, please use the html-editor instead.

If you want to have the ownership of this crate name, please contact me at lomirus@qq.com so I can transfer it to you.

Crates.io

HTML Query Parser

Pure, simple and elegant HTML parser and query selector.

Examples

Parse HTML segment/document

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

Output:

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

Query an element by classname

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

Query all elements by tag

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

Edit the 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();

You can find more examples in the documentation.

Changelog

See in CHANGELOG.md

Commit count: 71

cargo fmt