加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用XML解析器解析html文档

发布时间:2020-12-16 07:44:33 所属栏目:百科 来源:网络整理
导读:我可以使用 XML解析器解析HTML文件吗? 为什么我不能这样做.我知道XML用于存储数据,HTML用于显示数据.但从语法上讲,它们几乎完全相同. 预期用途是创建HTML解析器,它是Web爬网程序应用程序的一部分 您可以尝试使用XML解析器解析HTML文件,但它可能会失败.原因
我可以使用 XML解析器解析HTML文件吗?

为什么我不能这样做.我知道XML用于存储数据,HTML用于显示数据.但从语法上讲,它们几乎完全相同.

预期用途是创建HTML解析器,它是Web爬网程序应用程序的一部分

您可以尝试使用XML解析器解析HTML文件,但它可能会失败.原因是HTML文档可以具有XML解析器无法理解的以下HTML功能.

>从不使用结束标记且不使用XML所谓的“自闭标签语法”的元素;例如,< br>,< meta>,< link>和< img> (也称为虚空元素)
>不需要结束标记的元素;例如,< p> &LT峰; dt> <李> (他们的结束标签可以暗示)
>可以包含非转义标记的元素“<”字符;例如,风格,文本,标题,脚本; <脚本> if(a< b)...< / script>,< title>使用“<”操作符LT; /标题>
>带有不带引号的值的属性;例如,< metacharset = utf-8>
>属性为空,没有给出单独的值;例如,< inputdisabled>

XML解析器将无法解析使用任何这些功能的任何HTML文档.

另一方面,无论文档包含什么,HTML解析器基本上都不会失败.

总而言之,在开发一种新的XML解析方面也做了大量工作 – 所谓的XML5解析 – 即使在XML文档中也能处理空/不带引号的属性属性.有一个draft XML5 specification,还有as an XML5 parser,xml5ever.

The intended use is to make an HTML parser,that is part of a web
crawler application

如果您要创建一个Web爬虫应用程序,您绝对应该使用HTML解析器 – 理想情况下,是一个符合parsing requirements in the HTML standard的HTML解析器.

目前,有许多(甚至大多数)语言的符合HTML的解析器;例如.:

> parse5(node.js / JavaScript)
> html5lib(python)
> html5ever(生锈)
> validator.nu html5 parser(java)
> gumbo(c,with bindings for ruby,objective c,c++,per,php,c#,perl,lua,D,julia…)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读