9个版本 (有破坏性)
0.7.0 | 2023年11月14日 |
---|---|
0.6.1 | 2023年4月22日 |
0.5.3 |
|
0.5.2 | 2022年8月21日 |
0.4.0 | 2022年3月19日 |
#168 in 文本编辑器
988 每月下载次数
在 4 个crate中使用 (3 个直接使用)
52KB
933 行
HTML Editor
纯朴的HTML解析器和编辑器。
示例
解析HTML片段/文档
let document: Vec<Node> = parse("<!doctype html><html><head></head><body></body></html>")?;
println!("{:#?}", document);
输出
[
Doctype(
Html,
),
Element {
name: "html",
attrs: {},
children: [
Element {
name: "head",
attrs: {},
children: [],
},
Element {
name: "body",
attrs: {},
children: [],
},
],
},
]
您还可以使用 try_parse
来解析包含可容忍错误(html)
let document: Vec<Node> = try_parse("<div><span>Ipsum</div>");
通过选择器查询元素/元素
// let html = r#"..."#
let nodes: Vec<Node> = parse(html)?;
let selector: Selector = Selector::from(".box");
let element: Option<Element> = nodes.query(&selector);
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();
let d: String = parse(html)?.replace_with(&selector, |el| Node::Comment(el.html())).html();
您可以在文档中找到更多示例。