使用XML解析器解析html文档

前端之家收集整理的这篇文章主要介绍了使用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…)

猜你在找的XML相关文章