Streaming HTML parser

联合创作 · 2023-09-22 00:14

Streaming HTML parser 是一个 C 语言的 HTML 解析器。

示例代码

#include <stdio.h>
#include <streamhtmlparser/htmlparser.h>

int main(void) {
 
unsigned int getchar_ret;
  htmlparser_ctx
*parser = htmlparser_new();

 
while((getchar_ret = getchar()) != EOF) {
   
char c = (char)getchar_ret;

   
/* If we received a '$' character, we output the current tag and attribute
     * name to stdout. */

   
if (c == '$') {
      printf
("[[ ");
     
if (htmlparser_tag(parser))
        printf
("tag=%s ", htmlparser_tag(parser));
     
if (htmlparser_attr(parser))
        printf
("attr=%s ", htmlparser_attr(parser));
      printf
("]]");

   
/* If we read any other character, we pass it to the parser and echo it to
     * stdout. */

   
} else {
      htmlparser_parse_chr
(parser, c);
      putchar
(c);
   
}
 
}
}

输入

<html>   <body $>     <title> $ </title>     <a href="$" alt="$"> url </a>   </body> </html>

输出

<html>   <body [[ tag=body ]]>     <title> [[ tag=title ]] </title>     <a href="[[ tag=a attr=href ]]" alt="[[ tag=a attr=alt ]]"> url </a>   </body> </html>

 

浏览 4
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报