XHTML-Isn HTML是否已经采用XML格式?

时间:2016-11-08 06:46:21

标签: html xml xhtml

我是我公司的应用程序开发人员,直到最近才非常关注HTML,在休息期间自学了一些JavaScript和HTML。

不断出现的一件事是HTML和XHTML之间的区别,特别是关于HTML5的文章。

令我困惑的概念是我认为HTML已经是XML格式。因此,当有人开始说XHTML是带XML的HTML时,这让我很困惑。

http://www.w3schools.com/html/html_xhtml.asp

中列出的HTML和XHTML之间几乎没有区别
  • 将XHTML <!DOCTYPE>添加到每页的第一行
  • 将xmlns属性添加到每个页面的html元素
  • 将所有元素名称更改为小写
  • 关闭所有空元素
  • 将所有属性名称更改为小写
  • 引用所有属性值

但除了第一点和第二点之外,其他人只是更严格的语法规则,也可以应用于HTML。此外,我认为只要遵循其他要点,就可以在HTML文档上使用XML工具。

那么区分两种不同标准的重点是什么呢?

编辑:我猜HTML5,区别更加清晰(或者更接近于包容性)。

1 个答案:

答案 0 :(得分:2)

TL; DR:
不,HTML还不是XML格式。

更长的答案:

HTML跟随不同的规则而不是XML。当然,总的来说,XML的规则有点严格,但除了这一点之外。关键是您可以拥有有效HTML但与XML无关的文档。例如:

<title>?</title>
<p>Hello

这个甚至没有根元素。也就是说,确实如此,但是使用不可见的开始和结束标记。或者,像这样的一行

<script src="script.js"/>

是HTML中的禁忌。破坏性的结果!但它是格式良好的XML,您可以在XHTML中执行此操作 所以不,HTML几乎不是XHTML。

我创建了一个页面,其中包含HMTL和XHTML之间的差异,这比W3Schools here更完整。如果您想研究这些差异,请使用该差异。

例如,W3Schools上的项目符号列表是一个开始,但它并不完整。你还需要

  • 使所有开始和结束标签可见,即使它们是根据HTML标准可选的
  • 请记住<script><style>块使用相同的解析器而不是纯文本解析器进行解析。如果你在样式块中有类似HTML的东西,例如p:after {content:'</style>';},那就非常错误了!同上与未转义和&amp;标志
  • 意识到像<table><tr><td></td></tr></table>这样的结构导致HTML和XHTML中的不同DOM树
  • 请勿使用<a>name属性作为锚点

哦,至于W3Schools&#39;第一个要点,浏览器不需要DOCTYPE声明来以标准模式显示文档。在真正的XHTML文档中,您可以将其保留,并且显示没有区别 您需要的唯一时间是在文档中命名实体时,例如&eacute;需要完整的DOCTYPE才能工作。 (一个完整的DOCTYPE,包括DTD部分,而不是简短的HTML5部分。)