javascript - 如何在node.js环境中规范化来自网页的html文档,例如tbody?

标签 javascript html node.js google-chrome

我从网站页面下载了一个页面,该页面有一个没有 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/

相关文章:

javascript - CSS Calc(100% - 100px) 在夜间造成颠簸(溢出)

html - 为什么我的图像标题的高度会根据下面的元素发生变化?

node.js - Twilio statusCallback 实现遇到麻烦

javascript - 如何在同一个函数中处理不同的可选回调?

angularjs - 带有 express 的 Angular HTML5 模式

javascript - 在没有路由器的情况下使用 Angular 2/Webpack 延迟加载库/依赖项

javascript - polymer 1.0 元素上的动态类

javascript - ng-model 没有获得默认值复选框

javascript - 如何使用 Kendo 文件上传发送额外值

php - 迭代从 mysqli 获取的值