我从网站页面下载了一个页面,该页面有一个没有 tbody 的 table 标签,但我可以在 chrome 浏览器中看到 tbody 标签。显然html文档已经被chrome规范化了。我想使用一些npm包规范化网页文档以达到与chrome相同的效果。
哪个 npm 包可以做到这一点?谢谢。
最佳答案
据我所知,还没有这样的工具,而且是有原因的。
因为您所说的“规范化”并不是 HTML 有效的强制要求。 thead
, tbody
, tfoot
不是必需的。
但是浏览器为什么要这样做呢?
添加它是因为构建 DOM 树需要它。
以下是解析器的工作原理:
8.2.5.4.9 The "in table" insertion mode
A start tag whose tag name is one of: "td", "th", "tr"
Insert an HTML element for a "tbody" start tag token with no attributes, then switch the insertion mode to "in table body".
更多信息请参见:https://www.w3.org/TR/html5/syntax.html#parsing-main-intable
<小时/>顺便说一句,一个非常简单的方法是使用搜索和替换。
搜索:<table>
替换:<table><tbody>
之后:
搜索:</table>
替换:</tbody></table>
关于javascript - 如何在node.js环境中规范化来自网页的html文档,例如tbody?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46090535/