为什么我不能这样做.我知道XML用于存储数据,HTML用于显示数据.但从语法上讲,它们几乎完全相同.
预期用途是创建HTML解析器,它是Web爬网程序应用程序的一部分
>从不使用结束标记且不使用XML所谓的“自闭标签语法”的元素;例如,< br>,< Meta>,< link>和< img> (也称为虚空元素)
>不需要结束标记的元素;例如,< p> <峰; 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…)