为什么Google不关闭表格中的td和tr标签?

时间:2010-11-27 19:10:22

标签: html

查看

的HTML源代码

http://www.google.com/finance/historical?cid=983582&startdate=Nov+28,+2000&enddate=Nov+27,+2010&num=200

我发现Google永远不会关闭tdtr代码。源中没有</tr>没有</td>

为什么?

<tr class=bb>
<th class="bb lm">Date
<th class="rgt bb">Open
<th class="rgt bb">High
<th class="rgt bb">Low
<th class="rgt bb">Close
<th class="rgt bb rm">Volume
<tr>
<td class="lm">Nov 26, 2010
<td class="rgt">11,183.50
<td class="rgt">11,183.50
<td class="rgt">11,067.17
<td class="rgt">11,092.00
<td class="rgt rm">68,396,121
<tr>

是否因为XML解析器无法读取它而难以解析它?我已经注意到&amp; output = csv不适用于索引(此网址不起作用:http://www.google.com/finance?q=INDEXDJX:.DJI&output=csv),但它可用于库存(http://www.google.com/finance/historical?q =纳斯达克:GOOG&amp; output = csv将起作用)以便在csv中获取索引的历史数据,你必须做解析工作!

3 个答案:

答案 0 :(得分:9)

这是HTML4(而不是XML)。正如W3 specs中指出的那样:

  

11.2.6表格单元格:TH和TD元素

     

...

     

开始标记:必填,结束标记:可选

同样为tr

  

11.2.5表行:TR元素

     

...

     

开始标记:必填,结束标记:可选

我认为目的是通过省略结束标记来最小化页面大小。他们会进行各种额外的优化,这些优化可能会导致HTML无效,但会由tagsoup mode中的浏览器处理。

答案 1 :(得分:2)

因为速度更快,所需带宽更少,所有主流浏览器都可以应对。此外,虽然这可能不是很好的XHTML,但它仍然是完全有效的HTML。有关更多信息,请参阅此讨 Why do some major websites use invalid HTML?

答案 2 :(得分:0)

他们这样做是为了节省带宽。在谷歌的书中,每个字节都是数千美元,所以为什么要浪费额外的数据字节来制作可读的代码。然而,他们在过去几年中不太关心带宽,因为他们将服务器容量增加到上帝般的比例,因此更大的徽标文件(例如,他们的旧徽标here大约是8.5看起来像垃圾的kb gif文件,它们当前的文件是25 + kb PNG),所以我怀疑他们最终会想出一个更符合标准且更清晰的主页。