1个不稳定版本
0.1.0 | 2024年8月9日 |
---|
#1987 在 解析器实现
118 每月下载量
14KB
343 行
html_forge
一个强大且高效的Rust HTML解析库
🚀 特性
元素解析
:轻松解析具有属性和嵌套子元素的HTML元素。文本解析
:提取和管理文档中的文本节点。属性解析
:处理单引号和双引号中的元素属性。注释解析
:安全解析注释,即使包含特殊字符或嵌套连字符。错误处理
:优雅地管理解析错误,如不匹配的标签和意外的文件结束(EOF)。
📦 安装
要使用 html_forge
,请将以下内容添加到您的Cargo.toml中
[dependencies]
html_forge = "0.1.0"
用法
1. 基本解析示例
以下是使用html_forge解析简单HTML片段的方法
use html_forge::parser::Parser;
use html_forge::dom::Node;
fn main() {
let input = "<div class='container'><p>Hello, world!</p></div>".to_string();
let mut parser = Parser::new(input);
match parser.parse() {
Ok(node) => println!("Parsed Node: {:?}", node),
Err(err) => eprintln!("Parsing error: {:?}", err),
}
}
2. 处理错误
html_forge在解析过程中优雅地处理常见错误
use html_forge::{parser::Parser, errors::ParseError};
fn main() {
let input = "<div><p>Unclosed div".to_string();
let mut parser = Parser::new(input);
match parser.parse() {
Err(ParseError::UnexpectedEOF) => eprintln!("Error: Unexpected end of file"),
Err(ParseError::MismatchedClosingTag) => eprintln!("Error: Mismatched closing tag"),
Ok(node) => println!("Parsed Node: {:?}", node),
Err(err) => eprintln!("Other parsing error: {:?}", err),
}
}
🧪 测试
要运行测试,请使用
cargo test
👥 贡献
欢迎贡献!请随意打开问题、提交拉取请求或分叉仓库以进行改进。
📝 许可证
此库是开源的,可在MIT许可证下使用。
html_forge让您快乐地锻造!🛠️🚀