应该包含非父元素的HTML元素是什么?

时间:2011-08-23 14:40:47

标签: html html-parsing

我正在寻找一个HTML元素列表,这些元素应该包含父元素(<body>除外),以使它们最有意义。

例如,<tr>元素就是这样一个元素,因为它应该位于<tbody><table>元素内。 <div>元素不会是这样的元素,因为直接在<body>元素内部完全没问题。

有谁知道获得此类列表的最佳方式?我发现this list是一个起点,但是如果有更好的方式比我单独检查每一个,那么它会节省我一些时间。

1 个答案:

答案 0 :(得分:3)

对于从HTML 2.0到HTML 4.01和XHTML 1.x之前的HTML版本,请参阅其DTD(从W3C站点上的适用规范链接)。 (早期版本的HTML并没有那么形式化,因为有一个DTD。更高版本的XHTML正朝着模式发展.HTML 5的定义方式是没有官方的机器可读规范,但我认为可能有那里的第三方模式。)

找到body元素的定义:

<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->

展开引用(此示例中为%body;)。

这将为您提供可能是body元素的子元素的列表。

然后只需减去该版本HTML中所有元素列表的列表,您将拥有必须是除正文之外的元素的子元素或者是根元素(<html>)的元素。