您可以尝试使用XML解析器解析HTML文件,但它可能会失败.原因是HTML文档可以具有XML解析器无法理解的以下HTML功能.
>从不使用结束标记且不使用XML所谓的“自闭标签语法”的元素;例如,< br>,< Meta>,< link>和< img> (也称为虚空元素)
>不需要结束标记的元素;例如,< p> <峰; dt> (他们的结束标签可以暗示)
>可以包含非转义标记的元素“ if(a< b)...< / script>,< title>使用“
>带有不带引号的值的属性;例如,< 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的解析器;例如.: